{"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-27f674fefd4ea834", "name": "Possibly dead Python function: add_footer", "shortDescription": {"text": "Possibly dead Python function: add_footer"}, "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-46e7fe22fe590895", "name": "Possibly dead Python function: wrap", "shortDescription": {"text": "Possibly dead Python function: wrap"}, "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-64adf7724fdffef0", "name": "Possibly dead Python function: draw", "shortDescription": {"text": "Possibly dead Python function: draw"}, "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-0e86725f54ef64b5", "name": "Possibly dead Python function: add_page_number", "shortDescription": {"text": "Possibly dead Python function: add_page_number"}, "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-386dd79b930ce49e", "name": "Possibly dead Python function: wrap", "shortDescription": {"text": "Possibly dead Python function: wrap"}, "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-c4d345218e9f456e", "name": "Possibly dead Python function: draw", "shortDescription": {"text": "Possibly dead Python function: draw"}, "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-4a89b05172bafa5d", "name": "Possibly dead Python function: metrics_row", "shortDescription": {"text": "Possibly dead Python function: metrics_row"}, "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-5111a9effc1dbd99", "name": "Possibly dead Python function: normalize_agent_name", "shortDescription": {"text": "Possibly dead Python function: normalize_agent_name"}, "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-71d27f652bacaa96", "name": "Possibly dead Python function: normalize_phone", "shortDescription": {"text": "Possibly dead Python function: normalize_phone"}, "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-8f1640a74d1278ff", "name": "Possibly dead Python function: extract_urls", "shortDescription": {"text": "Possibly dead Python function: extract_urls"}, "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-f5ac6db75fd18347", "name": "Possibly dead Python function: extract_phone_numbers", "shortDescription": {"text": "Possibly dead Python function: extract_phone_numbers"}, "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-00afa8c392de5e42", "name": "Possibly dead Python function: load_csv_full", "shortDescription": {"text": "Possibly dead Python function: load_csv_full"}, "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-2160ce5d9b84e4fb", "name": "Possibly dead Python function: mark_duplicates", "shortDescription": {"text": "Possibly dead Python function: mark_duplicates"}, "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-68901e20b8abed17", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/12-ai-assist-live.js:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/12-ai-assist-live.js:22"}, "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-376a27d37b1b1920", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/02-login-direct.js:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/02-login-direct.js:25"}, "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-cc72feced1a311d7", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/16-broadcasts.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/16-broadcasts.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-e807dccb918182ea", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/04-inbox-deep.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/04-inbox-deep.js:23"}, "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-0b62cb2bf481d0cd", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/11-inbox-live-v2.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/11-inbox-live-v2.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-ab99f29a288709e2", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/14-workflow-catalog.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/14-workflow-catalog.js:16"}, "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-ca269645486c83e5", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/09-telegram-connect.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/09-telegram-connect.js:21"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33a72ed9dc12c2f6", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/19-thorough-sweep.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/19-thorough-sweep.js:21"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ca289874a71ab43e", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/08-settings-via-inbox.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/08-settings-via-inbox.js:19"}, "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-dab71dc59c840cf6", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/01-login.js:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/01-login.js:25"}, "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-48f7bbfb6d102835", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/03-crawl-sidebar.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/03-crawl-sidebar.js:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6b85d2be6f124bc0", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/06-settings-via-gear.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/06-settings-via-gear.js:19"}, "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-c825b30f4bb821bf", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/17-broadcasts-create.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/17-broadcasts-create.js:16"}, "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-44fa25ed4ef1b4ed", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/07-settings-layers.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/07-settings-layers.js:18"}, "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-4503f2224361d537", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/05-settings-harvest.js:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/05-settings-harvest.js:24"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5005177cd14d8a0c", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/15-workflow-full-catalog.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/15-workflow-full-catalog.js:16"}, "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-4deebe737191994b", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/10-inbox-live.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/10-inbox-live.js:19"}, "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-00b4f96624ead031", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/20-final-gaps.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/20-final-gaps.js:15"}, "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-1641c85917d45b62", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/13-workflows.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/13-workflows.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-b8036da2d315c3e0", "name": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/18-contacts.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/18-contacts.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-1cba3170ba74d7e7", "name": "`truncate` class without `title=` for hover reveal \u2014 SE/src/components/Sidebar.jsx:118", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 SE/src/components/Sidebar.jsx:118"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee5b9082d71d7561", "name": "`truncate` class without `title=` for hover reveal \u2014 SE/src/components/TestApiCard.jsx:22", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 SE/src/components/TestApiCard.jsx:22"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee8558d64c38eede", "name": "`truncate` class without `title=` for hover reveal \u2014 SE/src/components/TestTab.jsx:161", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 SE/src/components/TestTab.jsx:161"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7bab913ef838ba55", "name": "`truncate` class without `title=` for hover reveal \u2014 SE/src/pages/HealthCheck.jsx:490", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 SE/src/pages/HealthCheck.jsx:490"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c75a835cffbe59a7", "name": "Stray `console.log` in TS/JS \u2014 tools/simulator/server.js:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tools/simulator/server.js:50"}, "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-eceabd4385311632", "name": "Stray `console.log` in TS/JS \u2014 ui-mocks/assets/js/app.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 ui-mocks/assets/js/app.js:16"}, "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-fc16642f30865d65", "name": "Stray `console.log` in TS/JS \u2014 src/Invekto.Backend/wwwroot/app/assets/flow-diff-BepD7kIP.js:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/Invekto.Backend/wwwroot/app/assets/flow-diff-BepD7kIP.js:22"}, "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-c1f6bd874872c3ba", "name": "Stray `console.log` in TS/JS \u2014 src/Invekto.Backend/wwwroot/app/assets/DataImportPage-DE27dBU8.js:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/Invekto.Backend/wwwroot/app/assets/DataImportPage-DE27dBU8.js:13"}, "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-33a753497075eb93", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:34", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:34"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d07b0f12ff9b506c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/Invekto.Backend/Dashboard/src/components/KanbanDrawer.tsx:300", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/Invekto.Backend/Dashboard/src/components/KanbanDrawer.tsx:300"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8342d7b8b1bd0272", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/HealthCard.tsx:227", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/HealthCard.tsx:227"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1a0c1318ac2c3e8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/LogStream.tsx:327", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/LogStream.tsx:327"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4f4879e9bb36986", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/Layout.tsx:187", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/Layout.tsx:187"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aeac1cfb40099cb6", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/PlaceholderPicker.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/PlaceholderPicker.tsx:146"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d2e3ccb52f16cc25", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/ri/RiRescueAlerts.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/ri/RiRescueAlerts.tsx:46"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7f8f64d906c3c48", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/ri/RiOnboardingPanel.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/ri/RiOnboardingPanel.tsx:136"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f8ef67758a62af76", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/knowledge/DocumentList", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/knowledge/DocumentList.tsx:92"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-43d7bdbc9e5e2eb0", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/LicensesPage.tsx:186", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/LicensesPage.tsx:186"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ba956db00df76fd", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/Invekto.Backend/Dashboard/src/pages/PaymentPage.tsx:429", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/Invekto.Backend/Dashboard/src/pages/PaymentPage.tsx:429"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8d7ecb6c40bc67c9", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/FlowMonitorPage.tsx:305", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/FlowMonitorPage.tsx:305"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-640352e315f56bd9", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/WebChatPage.tsx:258", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/WebChatPage.tsx:258"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a6b85dc7806f757b", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/MessagesPage.tsx:292", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/MessagesPage.tsx:292"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-04c828cbc0c54445", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/ProjectsPage.tsx:1331", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/ProjectsPage.tsx:1331"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0668695c38b80a44", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/FlowListPage.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/FlowListPage.tsx:383"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4140fde5e460669f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/AiC", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/AiChatPanel.tsx:395"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42d0d3b6d323ed86", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/Flo", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/FlowLogPanel.tsx:206"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a9e25a893946b97b", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/Nod", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/NodePalette.tsx:220"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-db128e6fe31e7f29", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/nod", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/nodes/UtilityNoteNode.tsx:29"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a814f67f2949fc45", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/nod", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/nodes/ActionHandoffNode.tsx:27"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4b04503b6cdabc3", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/nod", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/nodes/ActionAssignGroupNode.tsx:28"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f6266f7825f2ff3", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/nod", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/nodes/BaseNode.tsx:92"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1dcc7ace6f574d6", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/nod", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/nodes/MessageMenuNode.tsx:43"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-831a3e804c89dfc6", "name": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/panels/NodePro", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/panels/NodePropertyPanel.tsx:766"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f62dbd95f8d1724c", "name": "Insecure pattern 'eval_used' in SE/src/components/InteractiveROI.jsx:37", "shortDescription": {"text": "Insecure pattern 'eval_used' in SE/src/components/InteractiveROI.jsx:37"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-788a903799f22d43", "name": "Insecure pattern 'eval_used' in SE/src/lib/scenarioAnalysis.js:170", "shortDescription": {"text": "Insecure pattern 'eval_used' in SE/src/lib/scenarioAnalysis.js:170"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0e26315b48e830b1", "name": "Insecure pattern 'eval_used' in SE/src/pages/HealthCheck.jsx:251", "shortDescription": {"text": "Insecure pattern 'eval_used' in SE/src/pages/HealthCheck.jsx:251"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-67948a61bb3d2f92", "name": "Insecure pattern 'eval_used' in SE/src/pages/Landing.jsx:100", "shortDescription": {"text": "Insecure pattern 'eval_used' in SE/src/pages/Landing.jsx:100"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d0f034d4d21b4afe", "name": "Insecure pattern 'node_child_process' in mcp-servers/server-ops/index.mjs:25", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mcp-servers/server-ops/index.mjs:25"}, "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-b372e31496667549", "name": "Insecure pattern 'exec_used' in arch/plans/20260424-dent-paket-c1-faqs-content-bind.json:38", "shortDescription": {"text": "Insecure pattern 'exec_used' in arch/plans/20260424-dent-paket-c1-faqs-content-bind.json:38"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9a755cf94f07c0ba", "name": "Insecure pattern 'exec_used' in arch/plans/20260427-prod-bypass-bak-remove.json:12", "shortDescription": {"text": "Insecure pattern 'exec_used' in arch/plans/20260427-prod-bypass-bak-remove.json:12"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cb31f9585b2286f4", "name": "Insecure pattern 'cors_wildcard' in tools/simulator/server.js:37", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in tools/simulator/server.js:37"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b4971cfa08cf4236", "name": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/app.js:83", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/app.js:83"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-458ecc7e938e341f", "name": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/logs-panel.js:58", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/logs-panel.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-0af75651a096a77c", "name": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/errors-panel.js:34", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/errors-panel.js:34"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fda2513be787954f", "name": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/health-panel.js:30", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/health-panel.js:30"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f30d60515907ede", "name": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/jwt-panel.js:29", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/jwt-panel.js:29"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8f63df298edacbe5", "name": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/callback-panel.js:36", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/callback-panel.js:36"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0a09216c357887c8", "name": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/scenario-panel.js:69", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/scenario-panel.js: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-c767a6e1061136f9", "name": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/traffic-feed.js:56", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/traffic-feed.js:56"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-31a6ba22d1fefee3", "name": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/webhook-panel.js:27", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/webhook-panel.js:27"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-45964d06041dffaf", "name": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/header.js:31", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/header.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-7e32d93df9a6deac", "name": "Insecure pattern 'subprocess_shell_true' in tools/ui-tester/service_manager.py:66", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in tools/ui-tester/service_manager.py:66"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c0b271e0ce640b43", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/Invekto.VoiceRuntime/wwwroot/voice-poc.js:264", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/Invekto.VoiceRuntime/wwwroot/voice-poc.js:264"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-61abbaadf56ce747", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/Invekto.Backend/wwwroot/app/assets/flow-diff-BepD7kIP.js:1", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/Invekto.Backend/wwwroot/app/assets/flow-diff-BepD7kIP.js:1"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e6ea655c252f2371", "name": "Insecure pattern 'document_write' in src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:880", "shortDescription": {"text": "Insecure pattern 'document_write' in src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:880"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-de1829c992b7378f", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:38", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:38"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1f93c841a2d2a484", "name": "Insecure pattern 'local_storage_auth_token' in src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52"}, "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-0b2f0213d0898175", "name": "Insecure pattern 'local_storage_auth_token' in src/Invekto.Backend/Dashboard/src/lib/api.ts:821", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/Invekto.Backend/Dashboard/src/lib/api.ts:821"}, "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-1965bf99765b8058", "name": "Insecure pattern 'document_write' in src/Invekto.Backend/Dashboard/src/pages/PaymentPage.tsx:187", "shortDescription": {"text": "Insecure pattern 'document_write' in src/Invekto.Backend/Dashboard/src/pages/PaymentPage.tsx:187"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cf155835942925fe", "name": "Insecure pattern 'dangerous_innerhtml' in src/Invekto.Backend/Dashboard/src/pages/PaymentPage.tsx:429", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/Invekto.Backend/Dashboard/src/pages/PaymentPage.tsx:429"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). 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-e48730cd883db2fe", "name": "Very large file: src/Invekto.Backend/wwwroot/app/assets/flow-templates-C530dZod.js (11034 lines)", "shortDescription": {"text": "Very large file: src/Invekto.Backend/wwwroot/app/assets/flow-templates-C530dZod.js (11034 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-d9efe4fef5c632a5", "name": "Very large file: src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js (880 lines)", "shortDescription": {"text": "Very large file: src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js (880 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-b23c627c07dd3f52", "name": "Very large file: src/Invekto.Backend/Dashboard/src/lib/api.ts (3646 lines)", "shortDescription": {"text": "Very large file: src/Invekto.Backend/Dashboard/src/lib/api.ts (3646 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-934ea0a7877094cd", "name": "Very large file: src/Invekto.Backend/Dashboard/src/pages/OnboardingGuidePage.tsx (2171 lines)", "shortDescription": {"text": "Very large file: src/Invekto.Backend/Dashboard/src/pages/OnboardingGuidePage.tsx (2171 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-8683b2b109041622", "name": "Very large file: src/Invekto.Backend/Dashboard/src/pages/DataImportPage.tsx (1289 lines)", "shortDescription": {"text": "Very large file: src/Invekto.Backend/Dashboard/src/pages/DataImportPage.tsx (1289 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-e5b82619738b156f", "name": "Very large file: src/Invekto.Backend/Dashboard/src/pages/ProjectsPage.tsx (2297 lines)", "shortDescription": {"text": "Very large file: src/Invekto.Backend/Dashboard/src/pages/ProjectsPage.tsx (2297 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e85b55e6d44cb02e", "name": "Very large file: src/Invekto.Backend/Dashboard/src/pages/flow-builder/panels/NodePropertyPanel.tsx (2082 lines)", "shortDescription": {"text": "Very large file: src/Invekto.Backend/Dashboard/src/pages/flow-builder/panels/NodePropertyPanel.tsx (2082 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": "15 test file(s) for 320 source file(s) (ratio 0.05). 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-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 544 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 485 placeholder/mock markers across 125 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-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "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. 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. 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-122f91b7f2906dc4", "name": "Agent authority lacks a verifier contract: .claude/settings.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ecb0d2c55ed6875d", "name": "Agent authority lacks a verifier contract: .claude/settings.local.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.local.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ad8925e37a224eb0", "name": "Agent authority lacks a verifier contract: .claude/skills/rollout/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/rollout/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-602e94a62a6c7917", "name": "Commented-code block (5 lines) in tracking/competitor-respond-io/12-ai-assist-live.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tracking/competitor-respond-io/12-ai-assist-live.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-a8c925edf8856db1", "name": "Commented-code block (5 lines) in SE/src/lib/scenarioAnalysis.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in SE/src/lib/scenarioAnalysis.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-6511fc546f732ffd", "name": "Commented-code block (6 lines) in mcp-servers/server-ops/index.mjs:3", "shortDescription": {"text": "Commented-code block (6 lines) in mcp-servers/server-ops/index.mjs:3"}, "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-cd91d4eaecac6af8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 tools/simulator/public/js/services/api-client.js:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 tools/simulator/public/js/services/api-client.js:13"}, "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-ae7f2f270df5caac", "name": "Commented-code block (6 lines) in src/Invekto.VoiceRuntime/wwwroot/voice-poc.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/Invekto.VoiceRuntime/wwwroot/voice-poc.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-c2058d4202cd0810", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.VoiceRuntime/wwwroot/voice-poc.js:181", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.VoiceRuntime/wwwroot/voice-poc.js:181"}, "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-c14373057d3078a0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/wwwroot/app/assets/wizard-api-CYDlvKtl.js:2", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/wwwroot/app/assets/wizard-api-CYDlvKtl.js:2"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-330c65547d73f04c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:2", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:2"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d567ab69f7a44669", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/wwwroot/app/assets/LeadDetailPage-wU9H0Ixi.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/wwwroot/app/assets/LeadDetailPage-wU9H0Ixi.js:1"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-abb572790b92b13f", "name": "Legacy-named symbol `masked_old` in src/Invekto.Backend/Dashboard/src/types/leadIntake.ts:31", "shortDescription": {"text": "Legacy-named symbol `masked_old` in src/Invekto.Backend/Dashboard/src/types/leadIntake.ts:31"}, "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-ef602aeb305ec99d", "name": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/stores/ai-chat-store.ts:45", "shortDescription": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/stores/ai-chat-store.ts:45"}, "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-ed60361fea5c6b60", "name": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/stores/flow-store.ts:160", "shortDescription": {"text": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/stores/flow-store.ts:160"}, "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-c5b82b6da13bb746", "name": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/api/photos.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/api/photos.ts:6"}, "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-33ae531f886197de", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/api/photos.ts:47", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/api/photos.ts:47"}, "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-b2afc4fafd936cf3", "name": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/constants/tenantFieldMappingReserved.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/constants/tenantFieldMappingReserved.ts: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-af478fb978a35d29", "name": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/components/PlaceholderPicker.tsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/components/PlaceholderPicker.tsx:11"}, "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-ce3626b5dcb79163", "name": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/components/LeadIntake/FieldMapEditorCard.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/components/LeadIntake/FieldMapEditorCard.tsx: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-121c752d3abc6fc0", "name": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/components/LeadIntake/ApiKeyManagerCard.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/components/LeadIntake/ApiKeyManagerCard.tsx: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-0ed1041e6f8d6f98", "name": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/components/FollowupSequence/FollowupStageRow.tsx:6", "shortDescription": {"text": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/components/FollowupSequence/FollowupStageRow.tsx:6"}, "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-a738320f1a7fca5c", "name": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/components/FieldMapping/EmptyLabelNotice.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/components/FieldMapping/EmptyLabelNotice.tsx: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-a746ed409f12d6da", "name": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/components/FieldMapping/FieldMappingTableRow.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/components/FieldMapping/FieldMappingTableRow.tsx: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-9f3ea504f27ae041", "name": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/lib/api.ts:1189", "shortDescription": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/lib/api.ts:1189"}, "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-f7e6a1db36e54505", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/lib/api.ts:1023", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/lib/api.ts:1023"}, "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-a7efc3c7360362b1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/lib/wizard-api.ts:98", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/lib/wizard-api.ts:98"}, "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-905aab63a08b9f4c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/inma/inmaApiClient.ts:46", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/inma/inmaApiClient.ts:46"}, "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-3a175b2571580d2e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/pages/TenantsPage.tsx:88", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/pages/TenantsPage.tsx:88"}, "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-68b43f1a9abb37f6", "name": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/pages/DataImportPage.tsx:16", "shortDescription": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/pages/DataImportPage.tsx:16"}, "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-31a587243932bea1", "name": "Commented-code block (9 lines) in src/Invekto.Backend/Dashboard/src/pages/DataManagementPage.tsx:5", "shortDescription": {"text": "Commented-code block (9 lines) in src/Invekto.Backend/Dashboard/src/pages/DataManagementPage.tsx:5"}, "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-cc8a76b6620c6c48", "name": "Commented-code block (6 lines) in src/Invekto.Backend/Dashboard/src/pages/VoiceTestPage.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/Invekto.Backend/Dashboard/src/pages/VoiceTestPage.tsx:3"}, "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-39a26edff5b6349b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/pages/DashboardPage.tsx:66", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/pages/DashboardPage.tsx:66"}, "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-873d5519c28c614b", "name": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/pages/ExportManagerPage.tsx:15", "shortDescription": {"text": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/pages/ExportManagerPage.tsx:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d49fcc8f5b65a5db", "name": "Commented-code block (8 lines) in src/Invekto.Backend/Dashboard/src/pages/ProjectsPage.tsx:21", "shortDescription": {"text": "Commented-code block (8 lines) in src/Invekto.Backend/Dashboard/src/pages/ProjectsPage.tsx:21"}, "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-35d9a88750c63fe2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/pages/ProjectsPage.tsx:321", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/pages/ProjectsPage.tsx:321"}, "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-d195e7c47afd38b5", "name": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/pages/settings/LeadIntakeSettingsPage.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/pages/settings/LeadIntakeSettingsPage.tsx: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-4ea2e52cc2874b00", "name": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/pages/settings/FieldMappingSettingsPage.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/pages/settings/FieldMappingSettingsPage.tsx: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-841df714caa6cdac", "name": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/pages/leads/LeadDetailPage.tsx:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/pages/leads/LeadDetailPage.tsx:5"}, "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-55693c49c2a49b13", "name": "Commented-code block (8 lines) in src/Invekto.Backend/Dashboard/src/pages/leads/components/PhotoTab.tsx:14", "shortDescription": {"text": "Commented-code block (8 lines) in src/Invekto.Backend/Dashboard/src/pages/leads/components/PhotoTab.tsx:14"}, "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-52fbff53511cef03", "name": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/pages/flow-builder/panels/NodePropertyPanel.tsx:408", "shortDescription": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/pages/flow-builder/panels/NodePropertyPanel.tsx:408"}, "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-be4fcd15892aaa55", "name": "Commented-code block (6 lines) in src/Invekto.Backend/Dashboard/src/hooks/useDynamicFields.ts:89", "shortDescription": {"text": "Commented-code block (6 lines) in src/Invekto.Backend/Dashboard/src/hooks/useDynamicFields.ts:89"}, "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-592bd2b2c00aaec9", "name": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/hooks/useFieldMapping.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/hooks/useFieldMapping.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-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:\narch/docs/senaryo-pdfs/generate-apple-pdf.py:wrap, arch/docs/senaryo-pdfs/generate-apple-pdf.py:wrap\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-325bb11ea842dd34", "name": "Frontend route `/scenarios/:id` has no Link/navigate to it \u2014 SE/src/App.jsx", "shortDescription": {"text": "Frontend route `/scenarios/:id` has no Link/navigate to it \u2014 SE/src/App.jsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ce85ccd528f50a62", "name": "Frontend route `/capabilities` has no Link/navigate to it \u2014 SE/src/App.jsx", "shortDescription": {"text": "Frontend route `/capabilities` has no Link/navigate to it \u2014 SE/src/App.jsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-425b6cfae1b86474", "name": "Frontend route `${b}` has no Link/navigate to it \u2014 src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js", "shortDescription": {"text": "Frontend route `${b}` has no Link/navigate to it \u2014 src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-10bc14c02c6afdcc", "name": "Frontend route `${b===` has no Link/navigate to it \u2014 src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js", "shortDescription": {"text": "Frontend route `${b===` has no Link/navigate to it \u2014 src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2cef623a3e9c0870", "name": "Dangling fetch: POST /api/v1/inma/auth/exchange (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/inma/auth/exchange (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/inma/auth/exchange` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/inma/auth/exchange`\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-16e7140626785641", "name": "Dangling fetch: POST /api/v1/inma/auth/login (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/inma/auth/login (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/inma/auth/login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/inma/auth/login`\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-f2659db532a40e8f", "name": "Dangling fetch: POST /api/v1/ops/auth/quicklogin (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/ops/auth/quicklogin (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/ops/auth/quicklogin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/ops/auth/quicklogin`\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-6243cbb3dd7ee060", "name": "Dangling fetch: POST /api/v1/inma/auth/mock-login (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/inma/auth/mock-login (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/inma/auth/mock-login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/inma/auth/mock-login`\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-d2d9da8f4757dae4", "name": "Dangling fetch: GET /api/v1/inma/welcome (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/inma/welcome (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/inma/welcome` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/inma/welcome`\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-96ad0fde91fcaf8d", "name": "Dangling fetch: POST /api/v1/inma/auth/refresh (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/inma/auth/refresh (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/inma/auth/refresh` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/inma/auth/refresh`\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-bd15fb5e2b6e1538", "name": "Dangling fetch: GET /ops/hangfire-login (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:577)", "shortDescription": {"text": "Dangling fetch: GET /ops/hangfire-login (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:577)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:577` calls `GET /ops/hangfire-login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ops/hangfire-login`\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-d3731935f7a20823", "name": "Dangling fetch: GET /api/ops/postman (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:577)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/postman (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:577)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:577` calls `GET /api/ops/postman` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ops/postman`\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-28afe7e23451300c", "name": "Dangling fetch: GET /api/ops/postman (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:644)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/postman (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:644)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:644` calls `GET /api/ops/postman` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ops/postman`\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-bd2ce3eb892f2d5f", "name": "Dangling fetch: GET /ops/voice-jwt (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:880)", "shortDescription": {"text": "Dangling fetch: GET /ops/voice-jwt (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:880)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:880` calls `GET /ops/voice-jwt` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ops/voice-jwt`\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-1c889de4350a2335", "name": "Dangling fetch: GET /api/ops/health (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/health (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/health`\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-166e636ababb1809", "name": "Dangling fetch: GET /api/ops/logs/stream?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/logs/stream?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/logs/stream?${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/logs/stream`\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-7d4eb90cbc9ccef9", "name": "Dangling fetch: GET /api/ops/logs/grouped?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/logs/grouped?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/logs/grouped?${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/logs/grouped`\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-5bbf23204703cbc6", "name": "Dangling fetch: GET /api/ops/logs/context?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/logs/context?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/logs/context?${a}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/logs/context`\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-58c36553a8fb12a3", "name": "Dangling fetch: DELETE /api/ops/logs/clear${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: DELETE /api/ops/logs/clear${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `DELETE /api/ops/logs/clear${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/logs/clear/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d2dcbd936524bd33", "name": "Dangling fetch: GET /api/ops/stats/errors?hours=${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/stats/errors?hours=${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/stats/errors?hours=${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/stats/errors`\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-1f07ac2102f2f360", "name": "Dangling fetch: GET /api/ops/stats/translations (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/stats/translations (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/stats/translations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/stats/translations`\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-f5e34e3e433ec8a2", "name": "Dangling fetch: POST /api/ops/services/${t}/restart (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/ops/services/${t}/restart (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/ops/services/${t}/restart` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/services/<p>/restart`\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-99fc0130edd0e907", "name": "Dangling fetch: GET /api/ops/endpoints (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/endpoints (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/endpoints` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/endpoints`\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-c3ad2e4ed38b6da1", "name": "Dangling fetch: GET /ops (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /ops (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /ops` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops`\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-8546b66beb0fde55", "name": "Dangling fetch: GET /ops/errors (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /ops/errors (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /ops/errors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/errors`\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-56be37b6b6a4ffb8", "name": "Dangling fetch: GET /ops/slow (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /ops/slow (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /ops/slow` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/slow`\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-07a18468b6b62021", "name": "Dangling fetch: GET /ops/search?requestId=${encodeURIComponent(t)} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDL", "shortDescription": {"text": "Dangling fetch: GET /ops/search?requestId=${encodeURIComponent(t)} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /ops/search?requestId=${encodeURIComponent(t)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/search`\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-b3f5560213d153ef", "name": "Dangling fetch: GET /api/ops/knowledge/${t}/documents?${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/knowledge/${t}/documents?${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/knowledge/${t}/documents?${r}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/documents`\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-396d776514981c12", "name": "Dangling fetch: POST /api/ops/knowledge/${t}/documents/website (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js", "shortDescription": {"text": "Dangling fetch: POST /api/ops/knowledge/${t}/documents/website (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/ops/knowledge/${t}/documents/website` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/documents/website`\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-6455fad4c3bde4fd", "name": "Dangling fetch: DELETE /api/ops/knowledge/${t}/documents/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:", "shortDescription": {"text": "Dangling fetch: DELETE /api/ops/knowledge/${t}/documents/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `DELETE /api/ops/knowledge/${t}/documents/${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/documents/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b07f8f8d27d06bf0", "name": "Dangling fetch: GET /api/ops/knowledge/${t}/faqs?${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/knowledge/${t}/faqs?${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/knowledge/${t}/faqs?${r}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/faqs`\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-09d22b1bb83b94b0", "name": "Dangling fetch: POST /api/ops/knowledge/${t}/faqs (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/ops/knowledge/${t}/faqs (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/ops/knowledge/${t}/faqs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/faqs`\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-4112bc2637f1be6a", "name": "Dangling fetch: PUT /api/ops/knowledge/${t}/faqs/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: PUT /api/ops/knowledge/${t}/faqs/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/ops/knowledge/${t}/faqs/${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/faqs/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-93c99bd6273ecbd5", "name": "Dangling fetch: DELETE /api/ops/knowledge/${t}/faqs/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: DELETE /api/ops/knowledge/${t}/faqs/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `DELETE /api/ops/knowledge/${t}/faqs/${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/faqs/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0cdcda0ff8d9cd6f", "name": "Dangling fetch: POST /api/ops/knowledge/${t}/generate-embeddings (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.", "shortDescription": {"text": "Dangling fetch: POST /api/ops/knowledge/${t}/generate-embeddings (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/ops/knowledge/${t}/generate-embeddings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/generate-embeddings`\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-3f6bc2f5f3c98088", "name": "Dangling fetch: GET /api/ops/analytics/tenants (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/tenants (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/analytics/tenants` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/tenants`\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-7c7e785b2cd575f6", "name": "Dangling fetch: GET /api/v1/dashboard/analytics/summary?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:5", "shortDescription": {"text": "Dangling fetch: GET /api/v1/dashboard/analytics/summary?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/dashboard/analytics/summary?${a}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/dashboard/analytics/summary`\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-6dfa7e523fa31420", "name": "Dangling fetch: GET /api/ops/analytics/automation/summary?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/automation/summary?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/analytics/automation/summary?${a}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/automation/summary`\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-8e39184db56b97f5", "name": "Dangling fetch: GET /api/ops/analytics/automation/trends?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/automation/trends?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/analytics/automation/trends?${a}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/automation/trends`\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-060ad8e258824561", "name": "Dangling fetch: GET /api/ops/analytics/automation/intents?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/automation/intents?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/analytics/automation/intents?${a}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/automation/intents`\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-d18e50a384253c46", "name": "Dangling fetch: GET /api/ops/analytics/wa/analyses?tenant_id=${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/wa/analyses?tenant_id=${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/analytics/wa/analyses?tenant_id=${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/wa/analyses`\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-325c8299ed4ebe9d", "name": "Dangling fetch: GET /api/ops/analytics/wa/summary?tenant_id=${t}&analysis_id=${n} (src/Invekto.Backend/wwwroot/app/asset", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/wa/summary?tenant_id=${t}&analysis_id=${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/analytics/wa/summary?tenant_id=${t}&analysis_id=${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/wa/summary`\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-36bed682d4c52085", "name": "Dangling fetch: GET /api/ops/analytics/wa/agents?tenant_id=${t}&analysis_id=${n} (src/Invekto.Backend/wwwroot/app/assets", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/wa/agents?tenant_id=${t}&analysis_id=${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/analytics/wa/agents?tenant_id=${t}&analysis_id=${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/wa/agents`\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-3e999c9d264882a8", "name": "Dangling fetch: GET /api/ops/analytics/wa/trends?tenant_id=${t}&analysis_id=${n} (src/Invekto.Backend/wwwroot/app/assets", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/wa/trends?tenant_id=${t}&analysis_id=${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/analytics/wa/trends?tenant_id=${t}&analysis_id=${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/wa/trends`\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-7aae2aef6c62a1de", "name": "Dangling fetch: GET /api/ops/analytics/attribution/summary?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.j", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/attribution/summary?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/analytics/attribution/summary?${a}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/attribution/summary`\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-b7077005d2af02cd", "name": "Dangling fetch: GET /api/ops/analytics/attribution/cost-per-lead?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKM", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/attribution/cost-per-lead?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/analytics/attribution/cost-per-lead?${a}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/attribution/cost-per-lead`\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-a53d35dd7d5bf268", "name": "Dangling fetch: GET /api/ops/analytics/campaigns?tenant_id=${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.j", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/campaigns?tenant_id=${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/analytics/campaigns?tenant_id=${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/campaigns`\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-2051d998de84c50b", "name": "Dangling fetch: GET /api/ops/messages?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/messages?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/messages?${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/messages`\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-61c50c53190b30a6", "name": "Dangling fetch: GET /api/ops/messages/${t}/story (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/messages/${t}/story (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/messages/${t}/story` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/messages/<p>/story`\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-bf4446432448e721", "name": "Dangling fetch: GET /api/ops/tenants (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/tenants (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/tenants` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/tenants`\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-252a43284052f4ef", "name": "Dangling fetch: GET /api/ops/kanban/${encodeURIComponent(t)} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:5", "shortDescription": {"text": "Dangling fetch: GET /api/ops/kanban/${encodeURIComponent(t)} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/kanban/${encodeURIComponent(t)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/kanban/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a1c2ee0b30db916", "name": "Dangling fetch: PATCH /api/ops/kanban/${encodeURIComponent(t)}/cards/${encodeURIComponent(n)} (src/Invekto.Backend/wwwro", "shortDescription": {"text": "Dangling fetch: PATCH /api/ops/kanban/${encodeURIComponent(t)}/cards/${encodeURIComponent(n)} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PATCH /api/ops/kanban/${encodeURIComponent(t)}/cards/${encodeURIComponent(n)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/kanban/<p>/cards/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0eb846e6175ca00a", "name": "Dangling fetch: GET /api/ops/channels?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/channels?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/channels?${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/channels`\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-1694149a54804277", "name": "Dangling fetch: POST /api/ops/tenants/${t}/impersonate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/ops/tenants/${t}/impersonate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/ops/tenants/${t}/impersonate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/tenants/<p>/impersonate`\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-3c02ee42d5438f54", "name": "Dangling fetch: GET /api/ops/tenants/${t}/license (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/tenants/${t}/license (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/tenants/${t}/license` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/tenants/<p>/license`\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-b5491c28f72d42a4", "name": "Dangling fetch: PUT /api/ops/tenants/${t}/plan (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: PUT /api/ops/tenants/${t}/plan (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/ops/tenants/${t}/plan` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/tenants/<p>/plan`\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-345e6bb05b5486ca", "name": "Dangling fetch: GET /api/ops/plans (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/plans (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/plans` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/plans`\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-58019a56a661e13a", "name": "Dangling fetch: POST /api/v1/payment/initiate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/payment/initiate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/payment/initiate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/payment/initiate`\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-a172b56bf33f54b5", "name": "Dangling fetch: GET /api/v1/settings/instances (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/settings/instances (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/settings/instances` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/instances`\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-c592899a3a222273", "name": "Dangling fetch: POST /api/v1/settings/instances/refresh (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/settings/instances/refresh (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/settings/instances/refresh` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/instances/refresh`\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-08ac562ac16c0a51", "name": "Dangling fetch: PUT /api/v1/settings/instances/${t}/toggle (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/settings/instances/${t}/toggle (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/v1/settings/instances/${t}/toggle` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/instances/<p>/toggle`\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-c8837df339d75e30", "name": "Dangling fetch: GET /api/v1/settings/wa-templates?instanceId=${encodeURIComponent(t)} (src/Invekto.Backend/wwwroot/app/a", "shortDescription": {"text": "Dangling fetch: GET /api/v1/settings/wa-templates?instanceId=${encodeURIComponent(t)} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/settings/wa-templates?instanceId=${encodeURIComponent(t)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/wa-templates`\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-7e1dc1a4240a3338", "name": "Dangling fetch: GET /api/v1/settings/working-hours (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/settings/working-hours (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/settings/working-hours` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/working-hours`\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-5598b0b3cc81e327", "name": "Dangling fetch: PUT /api/v1/settings/working-hours (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/settings/working-hours (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/v1/settings/working-hours` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/working-hours`\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-67357e14e8f655cb", "name": "Dangling fetch: GET /api/v1/settings/sector (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/settings/sector (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/settings/sector` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/sector`\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-ab537e7befcfe678", "name": "Dangling fetch: PUT /api/v1/settings/sector (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/settings/sector (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/v1/settings/sector` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/sector`\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-212ef41d67f74278", "name": "Dangling fetch: GET /api/v1/templates/available (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/templates/available (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/templates/available` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/templates/available`\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-e60c65212e720a08", "name": "Dangling fetch: POST /api/v1/templates/adopt/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/templates/adopt/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/templates/adopt/${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/templates/adopt/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3c9349498e3971fa", "name": "Dangling fetch: GET /api/v1/templates/adoptions (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/templates/adoptions (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/templates/adoptions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/templates/adoptions`\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-a62df4530fe11e60", "name": "Dangling fetch: GET /api/v1/flow-builder/flows/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/flow-builder/flows/${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-809f00e08a6d447a", "name": "Dangling fetch: GET /api/v1/flow-builder/flows/${t}/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${t}/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/flow-builder/flows/${t}/${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-210108747f7bcabe", "name": "Dangling fetch: POST /api/v1/flow-builder/flows/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/flow-builder/flows/${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-97f9ab5e47da5f14", "name": "Dangling fetch: PUT /api/v1/flow-builder/flows/${t}/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/flow-builder/flows/${t}/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/v1/flow-builder/flows/${t}/${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f3844ab360412713", "name": "Dangling fetch: DELETE /api/v1/flow-builder/flows/${t}/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/flow-builder/flows/${t}/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `DELETE /api/v1/flow-builder/flows/${t}/${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c2c53aef6d4c6165", "name": "Dangling fetch: POST /api/v1/flow-builder/flows/${t}/${n}/activate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDL", "shortDescription": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/${t}/${n}/activate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/flow-builder/flows/${t}/${n}/activate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>/activate`\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-67bc2e93e382bf60", "name": "Dangling fetch: POST /api/v1/flow-builder/flows/${t}/${n}/deactivate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMI", "shortDescription": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/${t}/${n}/deactivate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/flow-builder/flows/${t}/${n}/deactivate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>/deactivate`\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-3c33aac40e2f3f66", "name": "Dangling fetch: GET /api/v1/flow-builder/flows/${t}/${n}/versions (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${t}/${n}/versions (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/flow-builder/flows/${t}/${n}/versions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>/versions`\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-4f2540b4b9569104", "name": "Dangling fetch: GET /api/v1/flow-builder/flows/${t}/${n}/versions/${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYK", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${t}/${n}/versions/${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/flow-builder/flows/${t}/${n}/versions/${r}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>/versions/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3abe363c2df26d9b", "name": "Dangling fetch: POST /api/v1/flow-builder/flows/${t}/${n}/versions/${r}/rollback (src/Invekto.Backend/wwwroot/app/assets", "shortDescription": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/${t}/${n}/versions/${r}/rollback (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/flow-builder/flows/${t}/${n}/versions/${r}/rollback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>/versions/<p>/rollback`\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-dad09eb47f74a3a6", "name": "Dangling fetch: POST /api/v1/flow-builder/flows/validate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/validate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/flow-builder/flows/validate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/validate`\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-6ffd338534564549", "name": "Dangling fetch: POST /api/v1/flow-builder/simulation/start (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/flow-builder/simulation/start (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/flow-builder/simulation/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/simulation/start`\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-a562cae40e0051ea", "name": "Dangling fetch: POST /api/v1/flow-builder/simulation/step (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/flow-builder/simulation/step (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/flow-builder/simulation/step` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/simulation/step`\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-5b6d76f43fdd2ce6", "name": "Dangling fetch: DELETE /api/v1/flow-builder/simulation/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/flow-builder/simulation/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `DELETE /api/v1/flow-builder/simulation/${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/simulation/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-63ecddb68e1d3e21", "name": "Dangling fetch: GET /api/v1/flow-builder/flows/${t}/${n}/executions?${a} (src/Invekto.Backend/wwwroot/app/assets/index-B", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${t}/${n}/executions?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/flow-builder/flows/${t}/${n}/executions?${a}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>/executions`\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-056506270507ca67", "name": "Dangling fetch: GET /api/v1/flow-builder/flows/${t}/${n}/executions/${r} (src/Invekto.Backend/wwwroot/app/assets/index-B", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${t}/${n}/executions/${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/flow-builder/flows/${t}/${n}/executions/${r}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>/executions/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8739268839d5792e", "name": "Dangling fetch: GET /api/v1/flow-builder/monitor/${t}/executions?${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKM", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/monitor/${t}/executions?${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/flow-builder/monitor/${t}/executions?${r}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/monitor/<p>/executions`\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-7ea0cd96876851cd", "name": "Dangling fetch: GET /api/v1/flow-builder/instances/available${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/instances/available${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/flow-builder/instances/available${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/instances/available/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e265cc35adc79823", "name": "Dangling fetch: GET /api/v1/customer-feature-groups (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/customer-feature-groups (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/customer-feature-groups` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/customer-feature-groups`\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-7d27ddffcccf1c0e", "name": "Dangling fetch: POST /api/v1/customer-feature-groups/cache-invalidate (src/Invekto.Backend/wwwroot/app/assets/index-BYKM", "shortDescription": {"text": "Dangling fetch: POST /api/v1/customer-feature-groups/cache-invalidate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/customer-feature-groups/cache-invalidate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/customer-feature-groups/cache-invalidate`\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-a6ad9e59906732f8", "name": "Dangling fetch: GET /api/v1/flow-builder/tenant/working-hours (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/tenant/working-hours (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/flow-builder/tenant/working-hours` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/tenant/working-hours`\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-d96e30bb8e4fcc1f", "name": "Dangling fetch: GET /api/ops/templates/catalog?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/templates/catalog?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/templates/catalog?${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/catalog`\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-605f9bf91744f03c", "name": "Dangling fetch: GET /api/ops/templates/catalog/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/templates/catalog/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/templates/catalog/${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/catalog/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-645f8d081fb800cb", "name": "Dangling fetch: POST /api/ops/templates/catalog/${t}/publish (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:5", "shortDescription": {"text": "Dangling fetch: POST /api/ops/templates/catalog/${t}/publish (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/ops/templates/catalog/${t}/publish` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/catalog/<p>/publish`\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-9b581ed2774716a4", "name": "Dangling fetch: POST /api/ops/templates/catalog (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/ops/templates/catalog (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/ops/templates/catalog` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/catalog`\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-8b821c3b538b3fbd", "name": "Dangling fetch: POST /api/ops/templates/catalog/bulk (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/ops/templates/catalog/bulk (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/ops/templates/catalog/bulk` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/catalog/bulk`\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-b065b2490766242c", "name": "Dangling fetch: PUT /api/ops/templates/catalog/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: PUT /api/ops/templates/catalog/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/ops/templates/catalog/${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/catalog/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c9709c958e307abe", "name": "Dangling fetch: DELETE /api/ops/templates/catalog/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: DELETE /api/ops/templates/catalog/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `DELETE /api/ops/templates/catalog/${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/catalog/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-49532db15ebb4736", "name": "Dangling fetch: GET /api/ops/templates/catalog/${t}/versions (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:5", "shortDescription": {"text": "Dangling fetch: GET /api/ops/templates/catalog/${t}/versions (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/templates/catalog/${t}/versions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/catalog/<p>/versions`\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-8439697f555be9a6", "name": "Dangling fetch: GET /api/ops/templates/suggestions?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/templates/suggestions?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/templates/suggestions?${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/suggestions`\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-608d6234816e1b32", "name": "Dangling fetch: POST /api/ops/templates/extract-from-analysis/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDL", "shortDescription": {"text": "Dangling fetch: POST /api/ops/templates/extract-from-analysis/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/ops/templates/extract-from-analysis/${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/extract-from-analysis/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-61c0a9bdc024165b", "name": "Dangling fetch: POST /api/ops/templates/suggestions/${t}/review (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.j", "shortDescription": {"text": "Dangling fetch: POST /api/ops/templates/suggestions/${t}/review (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/ops/templates/suggestions/${t}/review` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/suggestions/<p>/review`\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-c98ee2cd653bf608", "name": "Dangling fetch: POST /api/ops/templates/suggestions/bulk-review (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.j", "shortDescription": {"text": "Dangling fetch: POST /api/ops/templates/suggestions/bulk-review (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/ops/templates/suggestions/bulk-review` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/suggestions/bulk-review`\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-93244f9f14f317df", "name": "Dangling fetch: POST /api/ops/templates/${t}/onboard (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/ops/templates/${t}/onboard (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/ops/templates/${t}/onboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/<p>/onboard`\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-41d7556e9f930c5c", "name": "Dangling fetch: GET /api/ops/knowledge/${t}/intents (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/knowledge/${t}/intents (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/knowledge/${t}/intents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/intents`\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-69f87321d2c5e206", "name": "Dangling fetch: POST /api/ops/knowledge/${t}/intents (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/ops/knowledge/${t}/intents (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/ops/knowledge/${t}/intents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/intents`\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-0b710adfb74aca60", "name": "Dangling fetch: PUT /api/ops/knowledge/${t}/intents/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: PUT /api/ops/knowledge/${t}/intents/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/ops/knowledge/${t}/intents/${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/intents/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-71478d749205d9e0", "name": "Dangling fetch: DELETE /api/ops/knowledge/${t}/intents/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52", "shortDescription": {"text": "Dangling fetch: DELETE /api/ops/knowledge/${t}/intents/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `DELETE /api/ops/knowledge/${t}/intents/${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/intents/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b3976dac26bfb464", "name": "Dangling fetch: GET /api/v1/onboarding/status (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/onboarding/status (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/onboarding/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/onboarding/status`\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-177a062d5c2fb02d", "name": "Dangling fetch: GET /api/v1/wa/${t}/ri/dashboard${i} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/dashboard${i} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/wa/${t}/ri/dashboard${i}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/dashboard/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8987f993eef3d412", "name": "Dangling fetch: GET /api/v1/wa/${t}/ri/revenue${i} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/revenue${i} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/wa/${t}/ri/revenue${i}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/revenue/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cc61a12ef89ac8f5", "name": "Dangling fetch: GET /api/v1/wa/${t}/ri/agents${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/agents${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/wa/${t}/ri/agents${a}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/agents/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bf6238db1fc62d14", "name": "Dangling fetch: GET /api/v1/wa/${t}/ri/objections${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/objections${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/wa/${t}/ri/objections${a}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/objections/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-674c2531da2c885d", "name": "Dangling fetch: GET /api/v1/wa/${t}/ri/response-time${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/response-time${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/wa/${t}/ri/response-time${a}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/response-time/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a299d45f896e1d7", "name": "Dangling fetch: GET /api/v1/wa/${t}/ri/rescue${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/rescue${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/wa/${t}/ri/rescue${a}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/rescue/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-afcc8d17fc16edcf", "name": "Dangling fetch: GET /api/v1/wa/${t}/ri/quality${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/quality${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/wa/${t}/ri/quality${a}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/quality/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fa913120fa2901f3", "name": "Dangling fetch: GET /api/v1/wa/${t}/ri/demand${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/demand${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/wa/${t}/ri/demand${a}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/demand/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2d4c538fb91716c2", "name": "Dangling fetch: GET /api/v1/wa/${t}/ri/templates?sector=${encodeURIComponent(n)} (src/Invekto.Backend/wwwroot/app/assets", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/templates?sector=${encodeURIComponent(n)} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/wa/${t}/ri/templates?sector=${encodeURIComponent(n)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/templates`\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-0cc918828a1dd7f0", "name": "Dangling fetch: PUT /api/v1/wa/${t}/ri/templates/${n}/${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/wa/${t}/ri/templates/${n}/${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/v1/wa/${t}/ri/templates/${n}/${r}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/templates/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb72420fe01a1813", "name": "Dangling fetch: POST /api/v1/wa/${t}/ri/templates/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/wa/${t}/ri/templates/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/wa/${t}/ri/templates/${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/templates/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-18733c9b6cb3cd3c", "name": "Dangling fetch: DELETE /api/v1/wa/${t}/ri/templates/${n}/${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/wa/${t}/ri/templates/${n}/${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `DELETE /api/v1/wa/${t}/ri/templates/${n}/${r}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/templates/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7cfe126411e71cf1", "name": "Dangling fetch: POST /api/v1/wa/${t}/ri/feedback (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/wa/${t}/ri/feedback (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/wa/${t}/ri/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/feedback`\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-45955241d55a8c23", "name": "Dangling fetch: GET /api/v1/wa/${t}/ri/benchmarks?sector=${encodeURIComponent(n)} (src/Invekto.Backend/wwwroot/app/asset", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/benchmarks?sector=${encodeURIComponent(n)} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/wa/${t}/ri/benchmarks?sector=${encodeURIComponent(n)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/benchmarks`\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-079c7bc525972dac", "name": "Dangling fetch: GET /api/v1/wa/${t}/ri/onboarding${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/onboarding${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/wa/${t}/ri/onboarding${r}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/onboarding/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b136bf66d44d1840", "name": "Dangling fetch: GET /api/v1/rescue/stats (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/rescue/stats (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/rescue/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/rescue/stats`\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-9d3e819db022c83e", "name": "Dangling fetch: GET /api/v1/rescue/risks${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/rescue/risks${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/rescue/risks${a}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/rescue/risks/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-30b49fd4a208f787", "name": "Dangling fetch: PUT /api/v1/rescue/risks/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/rescue/risks/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/v1/rescue/risks/${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/rescue/risks/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c9dc3d6e02cea77f", "name": "Dangling fetch: GET /api/v1/rescue/templates${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/rescue/templates${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/rescue/templates${r}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/rescue/templates/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7ae44b468e2686b7", "name": "Dangling fetch: POST /api/v1/rescue/templates (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/rescue/templates (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/rescue/templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/rescue/templates`\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-b5082e66cf72ccf0", "name": "Dangling fetch: PUT /api/v1/rescue/templates/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/rescue/templates/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/v1/rescue/templates/${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/rescue/templates/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f309cd647ab81442", "name": "Dangling fetch: DELETE /api/v1/rescue/templates/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/rescue/templates/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `DELETE /api/v1/rescue/templates/${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/rescue/templates/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-40e026897a5bf399", "name": "Dangling fetch: GET /api/ops/webchat/conversations${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/webchat/conversations${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/webchat/conversations${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/webchat/conversations/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-df5ebdc81f7f607c", "name": "Dangling fetch: GET /api/ops/webchat/conversations/${t}/messages (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.", "shortDescription": {"text": "Dangling fetch: GET /api/ops/webchat/conversations/${t}/messages (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/webchat/conversations/${t}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/webchat/conversations/<p>/messages`\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-6e5b269f8e3df545", "name": "Dangling fetch: POST /api/ops/webchat/conversations/${t}/messages (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi", "shortDescription": {"text": "Dangling fetch: POST /api/ops/webchat/conversations/${t}/messages (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/ops/webchat/conversations/${t}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/webchat/conversations/<p>/messages`\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-0099bed5ac6fead3", "name": "Dangling fetch: PUT /api/ops/webchat/conversations/${t}/close (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:", "shortDescription": {"text": "Dangling fetch: PUT /api/ops/webchat/conversations/${t}/close (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/ops/webchat/conversations/${t}/close` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/webchat/conversations/<p>/close`\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-6042a6ebed69e9ef", "name": "Dangling fetch: PUT /api/ops/webchat/conversations/${t}/route-ai (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.", "shortDescription": {"text": "Dangling fetch: PUT /api/ops/webchat/conversations/${t}/route-ai (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/ops/webchat/conversations/${t}/route-ai` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/webchat/conversations/<p>/route-ai`\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-1570e45de7e23761", "name": "Dangling fetch: GET /api/ops/webchat/conversations/${t}/visitor (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.j", "shortDescription": {"text": "Dangling fetch: GET /api/ops/webchat/conversations/${t}/visitor (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/ops/webchat/conversations/${t}/visitor` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/webchat/conversations/<p>/visitor`\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-5a700cd4928b944d", "name": "Dangling fetch: GET /api/v1/tenant/landing/settings (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant/landing/settings (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/tenant/landing/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant/landing/settings`\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-afadc1fa3b37499b", "name": "Dangling fetch: POST /api/v1/tenant/landing/apikey/rotate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/tenant/landing/apikey/rotate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/tenant/landing/apikey/rotate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant/landing/apikey/rotate`\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-2fba0d23d2df1dcd", "name": "Dangling fetch: POST /api/v1/tenant/landing/apikey/revoke (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/tenant/landing/apikey/revoke (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/tenant/landing/apikey/revoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant/landing/apikey/revoke`\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-912737e1ba647088", "name": "Dangling fetch: PUT /api/v1/tenant/landing/fieldmap (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/tenant/landing/fieldmap (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/v1/tenant/landing/fieldmap` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant/landing/fieldmap`\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-9cee5ec52bd007b7", "name": "Dangling fetch: POST /api/v1/tenant/landing/dry-run (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/tenant/landing/dry-run (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/tenant/landing/dry-run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant/landing/dry-run`\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-bdc6d482228b08e1", "name": "Dangling fetch: GET /api/v1/tenant/landing/audit${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant/landing/audit${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/tenant/landing/audit${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant/landing/audit/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e3ae21cca933a79", "name": "Dangling fetch: GET /api/v1/dynamic-fields (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/dynamic-fields (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/dynamic-fields` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/dynamic-fields`\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-cfc837e7a89e1f30", "name": "Dangling fetch: POST /api/v1/dynamic-fields/cache-invalidate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:5", "shortDescription": {"text": "Dangling fetch: POST /api/v1/dynamic-fields/cache-invalidate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/dynamic-fields/cache-invalidate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/dynamic-fields/cache-invalidate`\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-44f3d1573eff2edc", "name": "Dangling fetch: GET /api/v1/tenant-settings/field-mapping (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant-settings/field-mapping (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/tenant-settings/field-mapping` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/field-mapping`\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-e7d5224d13be957e", "name": "Dangling fetch: PUT /api/v1/tenant-settings/field-mapping (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/field-mapping (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/v1/tenant-settings/field-mapping` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/field-mapping`\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-4a18bd1286257924", "name": "Dangling fetch: GET /api/v1/tenant-settings/followup-sequence (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant-settings/followup-sequence (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/tenant-settings/followup-sequence` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/followup-sequence`\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-c564252044f4fa46", "name": "Dangling fetch: PUT /api/v1/tenant-settings/followup-sequence (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/followup-sequence (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/v1/tenant-settings/followup-sequence` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/followup-sequence`\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-d60eb2220d21d829", "name": "Dangling fetch: GET /api/v1/tenant/followup/runs (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant/followup/runs (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/tenant/followup/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant/followup/runs`\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-19e1cc865ccde411", "name": "Dangling fetch: GET /api/v1/tenant-settings/campaign-config (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant-settings/campaign-config (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/tenant-settings/campaign-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/campaign-config`\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-0ee4ef25b1c7dd76", "name": "Dangling fetch: PUT /api/v1/tenant-settings/campaign-config (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/campaign-config (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/v1/tenant-settings/campaign-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/campaign-config`\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-c308d443e7b9d8e1", "name": "Dangling fetch: GET /api/v1/tenant-settings/clinic-metadata (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant-settings/clinic-metadata (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/tenant-settings/clinic-metadata` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/clinic-metadata`\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-616ac2b1b7f43cb7", "name": "Dangling fetch: PUT /api/v1/tenant-settings/clinic-metadata (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/clinic-metadata (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/v1/tenant-settings/clinic-metadata` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/clinic-metadata`\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-56725238caecbfea", "name": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/tenant-settings/meta-leadgen` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/meta-leadgen`\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-9cf6d38187b7b6d8", "name": "Dangling fetch: PUT /api/v1/tenant-settings/meta-leadgen (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/meta-leadgen (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/v1/tenant-settings/meta-leadgen` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/meta-leadgen`\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-ebb2f78e8c680bc8", "name": "Dangling fetch: POST /api/v1/tenant-settings/meta-leadgen/rotate-verify-token (src/Invekto.Backend/wwwroot/app/assets/in", "shortDescription": {"text": "Dangling fetch: POST /api/v1/tenant-settings/meta-leadgen/rotate-verify-token (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/tenant-settings/meta-leadgen/rotate-verify-token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/meta-leadgen/rotate-verify-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-1439f3fffde4105c", "name": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen/discover-forms (src/Invekto.Backend/wwwroot/app/assets/index-BY", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen/discover-forms (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/tenant-settings/meta-leadgen/discover-forms` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/meta-leadgen/discover-forms`\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-8b0878aaecdbdc8a", "name": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen/events?limit=${t} (src/Invekto.Backend/wwwroot/app/assets/index", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen/events?limit=${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/tenant-settings/meta-leadgen/events?limit=${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/meta-leadgen/events`\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-f3570ab6bc301e2c", "name": "Dangling fetch: GET /api/v1/outbound/templates${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/templates${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/outbound/templates${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/templates/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-238d6a4404ef5c62", "name": "Dangling fetch: GET /api/v1/outbound/data-lists (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/data-lists (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/outbound/data-lists` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists`\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-248c6ad623729952", "name": "Dangling fetch: POST /api/v1/outbound/data-lists (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/data-lists (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/outbound/data-lists` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists`\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-72fe2f629b081180", "name": "Dangling fetch: PUT /api/v1/outbound/data-lists/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/outbound/data-lists/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/v1/outbound/data-lists/${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-366649385120e337", "name": "Dangling fetch: DELETE /api/v1/outbound/data-lists/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/outbound/data-lists/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `DELETE /api/v1/outbound/data-lists/${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1ba19f4b141e0158", "name": "Dangling fetch: POST /api/v1/outbound/data-lists/records/exists (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.j", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/data-lists/records/exists (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/outbound/data-lists/records/exists` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists/records/exists`\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-7be38f490f2aeacd", "name": "Dangling fetch: POST /api/v1/outbound/data-lists/import (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/data-lists/import (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/outbound/data-lists/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists/import`\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-b4d823d29780b5f0", "name": "Dangling fetch: GET /api/v1/outbound/data-lists/${t}/records?${r.toString()} (src/Invekto.Backend/wwwroot/app/assets/ind", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/data-lists/${t}/records?${r.toString()} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/outbound/data-lists/${t}/records?${r.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists/<p>/records`\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-48ce4711c6950bcf", "name": "Dangling fetch: POST /api/v1/outbound/data-lists/${t}/records (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/data-lists/${t}/records (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/outbound/data-lists/${t}/records` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists/<p>/records`\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-e98c39d8e8c83604", "name": "Dangling fetch: DELETE /api/v1/outbound/data-lists/${t}/records/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMI", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/outbound/data-lists/${t}/records/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `DELETE /api/v1/outbound/data-lists/${t}/records/${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists/<p>/records/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c299961eb9daa858", "name": "Dangling fetch: POST /api/v1/outbound/bulk-send/preview-from-list (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/bulk-send/preview-from-list (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/outbound/bulk-send/preview-from-list` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/bulk-send/preview-from-list`\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-7011703c240daea0", "name": "Dangling fetch: POST /api/v1/outbound/bulk-send/confirm (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/bulk-send/confirm (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/outbound/bulk-send/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/bulk-send/confirm`\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-4dbdc96acb5ece1d", "name": "Dangling fetch: GET /api/v1/outbound/bulk-send/${encodeURIComponent(t)}/status (src/Invekto.Backend/wwwroot/app/assets/i", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/bulk-send/${encodeURIComponent(t)}/status (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/outbound/bulk-send/${encodeURIComponent(t)}/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/bulk-send/<p>/status`\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-4c99c4cf0508c4cb", "name": "Dangling fetch: GET /api/v1/outbound/projects/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/projects/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/outbound/projects/${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a37fa2be0af93da3", "name": "Dangling fetch: POST /api/v1/outbound/projects (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/outbound/projects` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects`\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-a010817496c4951d", "name": "Dangling fetch: PUT /api/v1/outbound/projects/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/outbound/projects/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `PUT /api/v1/outbound/projects/${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7df1794a37bf59da", "name": "Dangling fetch: DELETE /api/v1/outbound/projects/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/outbound/projects/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `DELETE /api/v1/outbound/projects/${t}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-417bbc75bb012af6", "name": "Dangling fetch: POST /api/v1/outbound/projects/${t}/send/preview (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${t}/send/preview (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/outbound/projects/${t}/send/preview` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/send/preview`\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-5fa572993b592433", "name": "Dangling fetch: POST /api/v1/outbound/projects/${t}/send/confirm (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${t}/send/confirm (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/outbound/projects/${t}/send/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/send/confirm`\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-72cd68b8faf680ad", "name": "Dangling fetch: GET /api/v1/outbound/projects/${t}/send/status (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/projects/${t}/send/status (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/outbound/projects/${t}/send/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/send/status`\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-4f6ccffdfc387b7f", "name": "Dangling fetch: POST /api/v1/outbound/projects/${t}/send/pause (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${t}/send/pause (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/outbound/projects/${t}/send/pause` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/send/pause`\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-5cb3917398da4e37", "name": "Dangling fetch: POST /api/v1/outbound/projects/${t}/send/resume (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.j", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${t}/send/resume (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/outbound/projects/${t}/send/resume` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/send/resume`\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-400c43c6d3cd6256", "name": "Dangling fetch: POST /api/v1/outbound/projects/${t}/send/cancel (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.j", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${t}/send/cancel (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/outbound/projects/${t}/send/cancel` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/send/cancel`\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-16cc906167407cbc", "name": "Dangling fetch: GET /api/v1/outbound/projects/${t}/report/runs (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/projects/${t}/report/runs (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/outbound/projects/${t}/report/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/report/runs`\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-07e2af0d98a89768", "name": "Dangling fetch: GET /api/v1/outbound/projects/${t}/report/recipients?${r.toString()} (src/Invekto.Backend/wwwroot/app/as", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/projects/${t}/report/recipients?${r.toString()} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/outbound/projects/${t}/report/recipients?${r.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/report/recipients`\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-22c998c02d3aa0ae", "name": "Dangling fetch: POST /api/v1/outbound/projects/${t}/report/resend (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${t}/report/resend (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/outbound/projects/${t}/report/resend` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/report/resend`\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-6bd0bccd423cd5c0", "name": "Dangling fetch: POST /api/v1/outbound/projects/${t}/report/resend-bulk (src/Invekto.Backend/wwwroot/app/assets/index-BYK", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${t}/report/resend-bulk (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/outbound/projects/${t}/report/resend-bulk` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/report/resend-bulk`\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-6452f5f54c13e01d", "name": "Dangling fetch: POST /api/v1/outbound/projects/${t}/report/refresh-status (src/Invekto.Backend/wwwroot/app/assets/index-", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${t}/report/refresh-status (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/outbound/projects/${t}/report/refresh-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/report/refresh-status`\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-418d7cb635c5addd", "name": "Dangling fetch: POST /api/v1/outbound/projects/send/test (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/send/test (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/outbound/projects/send/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/send/test`\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-aae4acde955f5027", "name": "Dangling fetch: GET /api/v1/outbound/broadcast/${encodeURIComponent(t)}/status (src/Invekto.Backend/wwwroot/app/assets/i", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/broadcast/${encodeURIComponent(t)}/status (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/outbound/broadcast/${encodeURIComponent(t)}/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/broadcast/<p>/status`\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-d35b7a3a106a6e7c", "name": "Dangling fetch: GET /api/v1/outbound/exports/send-jobs (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/exports/send-jobs (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/outbound/exports/send-jobs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/exports/send-jobs`\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-fecca23751d9b40c", "name": "Dangling fetch: GET /api/v1/outbound/exports/send-job/${t}/report-data?for=pdf (src/Invekto.Backend/wwwroot/app/assets/i", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/exports/send-job/${t}/report-data?for=pdf (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/outbound/exports/send-job/${t}/report-data?for=pdf` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/exports/send-job/<p>/report-data`\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-52381b5eb9ba536a", "name": "Dangling fetch: GET /api/v1/outbound/exports/filter-options (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/exports/filter-options (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/outbound/exports/filter-options` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/exports/filter-options`\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-082f0d35ea74db34", "name": "Dangling fetch: GET /api/v1/outbound/exports/recipients/count${this.exportFilterQuery(t)} (src/Invekto.Backend/wwwroot/a", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/exports/recipients/count${this.exportFilterQuery(t)} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/outbound/exports/recipients/count${this.exportFilterQuery(t)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/exports/recipients/count/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a2700aef77d2150f", "name": "Dangling fetch: POST /api/v1/outbound/exports/recipients/create-list (src/Invekto.Backend/wwwroot/app/assets/index-BYKMI", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/exports/recipients/create-list (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `POST /api/v1/outbound/exports/recipients/create-list` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/exports/recipients/create-list`\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-0f8058507b2f9e81", "name": "Dangling fetch: GET /api/v1/outbound/exports/history (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/exports/history (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52` calls `GET /api/v1/outbound/exports/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/exports/history`\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-71019d753656e71f", "name": "Dangling fetch: GET /api/v1/leads/${s}/photos (src/Invekto.Backend/wwwroot/app/assets/LeadDetailPage-wU9H0Ixi.js:1)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/leads/${s}/photos (src/Invekto.Backend/wwwroot/app/assets/LeadDetailPage-wU9H0Ixi.js:1)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/LeadDetailPage-wU9H0Ixi.js:1` calls `GET /api/v1/leads/${s}/photos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/leads/<p>/photos`\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-a9515c8c1cb53059", "name": "Dangling fetch: POST /api/v1/leads/${s}/photos/request (src/Invekto.Backend/wwwroot/app/assets/LeadDetailPage-wU9H0Ixi.j", "shortDescription": {"text": "Dangling fetch: POST /api/v1/leads/${s}/photos/request (src/Invekto.Backend/wwwroot/app/assets/LeadDetailPage-wU9H0Ixi.js:1)"}, "fullDescription": {"text": "`src/Invekto.Backend/wwwroot/app/assets/LeadDetailPage-wU9H0Ixi.js:1` calls `POST /api/v1/leads/${s}/photos/request` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/leads/<p>/photos/request`\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-1c1122ddd9e892cd", "name": "Dangling fetch: GET /api/v1/leads/${leadId}/photos (src/Invekto.Backend/Dashboard/src/api/photos.ts:47)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/leads/${leadId}/photos (src/Invekto.Backend/Dashboard/src/api/photos.ts:47)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/api/photos.ts:47` calls `GET /api/v1/leads/${leadId}/photos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/leads/<p>/photos`\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-77020f4c48760777", "name": "Dangling fetch: POST /api/v1/leads/${leadId}/photos/request (src/Invekto.Backend/Dashboard/src/api/photos.ts:74)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/leads/${leadId}/photos/request (src/Invekto.Backend/Dashboard/src/api/photos.ts:74)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/api/photos.ts:74` calls `POST /api/v1/leads/${leadId}/photos/request` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/leads/<p>/photos/request`\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-61c7c584de0a0f08", "name": "Dangling fetch: GET /ops/hangfire-login (src/Invekto.Backend/Dashboard/src/components/Layout.tsx:167)", "shortDescription": {"text": "Dangling fetch: GET /ops/hangfire-login (src/Invekto.Backend/Dashboard/src/components/Layout.tsx:167)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/components/Layout.tsx:167` calls `GET /ops/hangfire-login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ops/hangfire-login`\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-9894980301303b9e", "name": "Dangling fetch: POST /api/v1/inma/auth/exchange (src/Invekto.Backend/Dashboard/src/lib/api.ts:1023)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/inma/auth/exchange (src/Invekto.Backend/Dashboard/src/lib/api.ts:1023)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1023` calls `POST /api/v1/inma/auth/exchange` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/inma/auth/exchange`\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-83d6c28a12352b9a", "name": "Dangling fetch: POST /api/v1/inma/auth/login (src/Invekto.Backend/Dashboard/src/lib/api.ts:1051)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/inma/auth/login (src/Invekto.Backend/Dashboard/src/lib/api.ts:1051)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1051` calls `POST /api/v1/inma/auth/login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/inma/auth/login`\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-540f5a95e3432d03", "name": "Dangling fetch: POST /api/v1/ops/auth/quicklogin (src/Invekto.Backend/Dashboard/src/lib/api.ts:1064)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/ops/auth/quicklogin (src/Invekto.Backend/Dashboard/src/lib/api.ts:1064)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1064` calls `POST /api/v1/ops/auth/quicklogin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/ops/auth/quicklogin`\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-57a6f90964826fb9", "name": "Dangling fetch: POST /api/v1/inma/auth/mock-login (src/Invekto.Backend/Dashboard/src/lib/api.ts:1076)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/inma/auth/mock-login (src/Invekto.Backend/Dashboard/src/lib/api.ts:1076)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1076` calls `POST /api/v1/inma/auth/mock-login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/inma/auth/mock-login`\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-249ab81271aac167", "name": "Dangling fetch: GET /api/v1/inma/welcome (src/Invekto.Backend/Dashboard/src/lib/api.ts:1093)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/inma/welcome (src/Invekto.Backend/Dashboard/src/lib/api.ts:1093)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1093` calls `GET /api/v1/inma/welcome` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/inma/welcome`\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-1326f44b1f181f3e", "name": "Dangling fetch: POST /api/v1/inma/auth/refresh (src/Invekto.Backend/Dashboard/src/lib/api.ts:1124)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/inma/auth/refresh (src/Invekto.Backend/Dashboard/src/lib/api.ts:1124)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1124` calls `POST /api/v1/inma/auth/refresh` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/inma/auth/refresh`\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-3cf78b0b023d00a8", "name": "Dangling fetch: GET /api/ops/health (src/Invekto.Backend/Dashboard/src/lib/api.ts:1297)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/health (src/Invekto.Backend/Dashboard/src/lib/api.ts:1297)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1297` calls `GET /api/ops/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/health`\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-e88815255ed6aaf0", "name": "Dangling fetch: GET /api/ops/logs/stream?${searchParams} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1317)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/logs/stream?${searchParams} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1317)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1317` calls `GET /api/ops/logs/stream?${searchParams}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/logs/stream`\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-0ea7f256bc8df0fd", "name": "Dangling fetch: GET /api/ops/logs/grouped?${searchParams} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1336)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/logs/grouped?${searchParams} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1336)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1336` calls `GET /api/ops/logs/grouped?${searchParams}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/logs/grouped`\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-84e6ed38eb610873", "name": "Dangling fetch: GET /api/ops/logs/context?${searchParams} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1345)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/logs/context?${searchParams} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1345)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1345` calls `GET /api/ops/logs/context?${searchParams}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/logs/context`\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-84fb34bd8d6cf8ab", "name": "Dangling fetch: DELETE /api/ops/logs/clear${params} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1351)", "shortDescription": {"text": "Dangling fetch: DELETE /api/ops/logs/clear${params} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1351)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1351` calls `DELETE /api/ops/logs/clear${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/logs/clear/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9fd51309c82addd9", "name": "Dangling fetch: GET /api/ops/stats/errors?hours=${hours} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1356)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/stats/errors?hours=${hours} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1356)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1356` calls `GET /api/ops/stats/errors?hours=${hours}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/stats/errors`\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-c98650d8b15dbda0", "name": "Dangling fetch: GET /api/ops/stats/translations (src/Invekto.Backend/Dashboard/src/lib/api.ts:1360)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/stats/translations (src/Invekto.Backend/Dashboard/src/lib/api.ts:1360)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1360` calls `GET /api/ops/stats/translations` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/stats/translations`\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-760f2060745f96ce", "name": "Dangling fetch: POST /api/ops/services/${serviceName}/restart (src/Invekto.Backend/Dashboard/src/lib/api.ts:1365)", "shortDescription": {"text": "Dangling fetch: POST /api/ops/services/${serviceName}/restart (src/Invekto.Backend/Dashboard/src/lib/api.ts:1365)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1365` calls `POST /api/ops/services/${serviceName}/restart` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/services/<p>/restart`\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-254376dbe04c91d3", "name": "Dangling fetch: GET /api/ops/endpoints (src/Invekto.Backend/Dashboard/src/lib/api.ts:1372)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/endpoints (src/Invekto.Backend/Dashboard/src/lib/api.ts:1372)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1372` calls `GET /api/ops/endpoints` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/endpoints`\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-34eeeb748f5c0966", "name": "Dangling fetch: GET /ops (src/Invekto.Backend/Dashboard/src/lib/api.ts:1377)", "shortDescription": {"text": "Dangling fetch: GET /ops (src/Invekto.Backend/Dashboard/src/lib/api.ts:1377)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1377` calls `GET /ops` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops`\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-769c80d60be8c3ed", "name": "Dangling fetch: GET /ops/errors (src/Invekto.Backend/Dashboard/src/lib/api.ts:1381)", "shortDescription": {"text": "Dangling fetch: GET /ops/errors (src/Invekto.Backend/Dashboard/src/lib/api.ts:1381)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1381` calls `GET /ops/errors` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/errors`\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-5db53030d6252681", "name": "Dangling fetch: GET /ops/slow (src/Invekto.Backend/Dashboard/src/lib/api.ts:1385)", "shortDescription": {"text": "Dangling fetch: GET /ops/slow (src/Invekto.Backend/Dashboard/src/lib/api.ts:1385)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1385` calls `GET /ops/slow` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/slow`\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-3b2b8977fe3a9c3b", "name": "Dangling fetch: GET /ops/search?requestId=${encodeURIComponent(requestId)} (src/Invekto.Backend/Dashboard/src/lib/api.ts", "shortDescription": {"text": "Dangling fetch: GET /ops/search?requestId=${encodeURIComponent(requestId)} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1389)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1389` calls `GET /ops/search?requestId=${encodeURIComponent(requestId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/search`\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-aa7068de57f2e492", "name": "Dangling fetch: GET /api/ops/knowledge/${tenantId}/documents?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1398)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/knowledge/${tenantId}/documents?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1398)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1398` calls `GET /api/ops/knowledge/${tenantId}/documents?${sp}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/documents`\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-2438c43ed336de94", "name": "Dangling fetch: POST /api/ops/knowledge/${tenantId}/documents/website (src/Invekto.Backend/Dashboard/src/lib/api.ts:1408", "shortDescription": {"text": "Dangling fetch: POST /api/ops/knowledge/${tenantId}/documents/website (src/Invekto.Backend/Dashboard/src/lib/api.ts:1408)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1408` calls `POST /api/ops/knowledge/${tenantId}/documents/website` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/documents/website`\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-6663dc7f996a3ded", "name": "Dangling fetch: DELETE /api/ops/knowledge/${tenantId}/documents/${docId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1", "shortDescription": {"text": "Dangling fetch: DELETE /api/ops/knowledge/${tenantId}/documents/${docId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1416)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1416` calls `DELETE /api/ops/knowledge/${tenantId}/documents/${docId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/documents/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6a469486c470d749", "name": "Dangling fetch: GET /api/ops/knowledge/${tenantId}/faqs?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1426)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/knowledge/${tenantId}/faqs?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1426)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1426` calls `GET /api/ops/knowledge/${tenantId}/faqs?${sp}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/faqs`\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-127944b11467e0c6", "name": "Dangling fetch: POST /api/ops/knowledge/${tenantId}/faqs (src/Invekto.Backend/Dashboard/src/lib/api.ts:1431)", "shortDescription": {"text": "Dangling fetch: POST /api/ops/knowledge/${tenantId}/faqs (src/Invekto.Backend/Dashboard/src/lib/api.ts:1431)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1431` calls `POST /api/ops/knowledge/${tenantId}/faqs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/faqs`\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-c8473353cf60e7bc", "name": "Dangling fetch: PUT /api/ops/knowledge/${tenantId}/faqs/${faqId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1437)", "shortDescription": {"text": "Dangling fetch: PUT /api/ops/knowledge/${tenantId}/faqs/${faqId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1437)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1437` calls `PUT /api/ops/knowledge/${tenantId}/faqs/${faqId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/faqs/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9e0c66873410f442", "name": "Dangling fetch: DELETE /api/ops/knowledge/${tenantId}/faqs/${faqId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1443)", "shortDescription": {"text": "Dangling fetch: DELETE /api/ops/knowledge/${tenantId}/faqs/${faqId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1443)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1443` calls `DELETE /api/ops/knowledge/${tenantId}/faqs/${faqId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/faqs/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8440c03b62856302", "name": "Dangling fetch: POST /api/ops/knowledge/${tenantId}/generate-embeddings (src/Invekto.Backend/Dashboard/src/lib/api.ts:14", "shortDescription": {"text": "Dangling fetch: POST /api/ops/knowledge/${tenantId}/generate-embeddings (src/Invekto.Backend/Dashboard/src/lib/api.ts:1448)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1448` calls `POST /api/ops/knowledge/${tenantId}/generate-embeddings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/generate-embeddings`\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-9825b98b445dede0", "name": "Dangling fetch: GET /api/ops/analytics/tenants (src/Invekto.Backend/Dashboard/src/lib/api.ts:1454)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/tenants (src/Invekto.Backend/Dashboard/src/lib/api.ts:1454)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1454` calls `GET /api/ops/analytics/tenants` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/tenants`\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-6f8f2b04479697dc", "name": "Dangling fetch: GET /api/v1/dashboard/analytics/summary?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1464)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/dashboard/analytics/summary?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1464)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1464` calls `GET /api/v1/dashboard/analytics/summary?${sp}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/dashboard/analytics/summary`\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-8aeea0f05a25f981", "name": "Dangling fetch: GET /api/ops/analytics/automation/summary?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1467)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/automation/summary?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1467)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1467` calls `GET /api/ops/analytics/automation/summary?${sp}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/automation/summary`\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-f7109322b780c13f", "name": "Dangling fetch: GET /api/ops/analytics/automation/trends?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1475)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/automation/trends?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1475)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1475` calls `GET /api/ops/analytics/automation/trends?${sp}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/automation/trends`\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-636e49ba59fb301d", "name": "Dangling fetch: GET /api/ops/analytics/automation/intents?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1483)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/automation/intents?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1483)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1483` calls `GET /api/ops/analytics/automation/intents?${sp}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/automation/intents`\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-e8b1c90366545118", "name": "Dangling fetch: GET /api/ops/analytics/wa/analyses?tenant_id=${tenantId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/wa/analyses?tenant_id=${tenantId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1487)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1487` calls `GET /api/ops/analytics/wa/analyses?tenant_id=${tenantId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/wa/analyses`\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-10a7e58a6c2556cf", "name": "Dangling fetch: GET /api/ops/analytics/wa/summary?tenant_id=${tenantId}&analysis_id=${analysisId} (src/Invekto.Backend/D", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/wa/summary?tenant_id=${tenantId}&analysis_id=${analysisId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1491)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1491` calls `GET /api/ops/analytics/wa/summary?tenant_id=${tenantId}&analysis_id=${analysisId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/wa/summary`\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-f73add2dde179c39", "name": "Dangling fetch: GET /api/ops/analytics/wa/agents?tenant_id=${tenantId}&analysis_id=${analysisId} (src/Invekto.Backend/Da", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/wa/agents?tenant_id=${tenantId}&analysis_id=${analysisId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1495)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1495` calls `GET /api/ops/analytics/wa/agents?tenant_id=${tenantId}&analysis_id=${analysisId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/wa/agents`\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-b00e375b7804f5d6", "name": "Dangling fetch: GET /api/ops/analytics/wa/trends?tenant_id=${tenantId}&analysis_id=${analysisId} (src/Invekto.Backend/Da", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/wa/trends?tenant_id=${tenantId}&analysis_id=${analysisId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1499)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1499` calls `GET /api/ops/analytics/wa/trends?tenant_id=${tenantId}&analysis_id=${analysisId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/wa/trends`\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-92830af61507e261", "name": "Dangling fetch: GET /api/ops/analytics/attribution/summary?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1508)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/attribution/summary?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1508)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1508` calls `GET /api/ops/analytics/attribution/summary?${sp}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/attribution/summary`\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-fd93f60d322329fc", "name": "Dangling fetch: GET /api/ops/analytics/attribution/cost-per-lead?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:151", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/attribution/cost-per-lead?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1516)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1516` calls `GET /api/ops/analytics/attribution/cost-per-lead?${sp}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/attribution/cost-per-lead`\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-f2fd5edb271ac715", "name": "Dangling fetch: GET /api/ops/analytics/campaigns?tenant_id=${tenantId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:152", "shortDescription": {"text": "Dangling fetch: GET /api/ops/analytics/campaigns?tenant_id=${tenantId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1520)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1520` calls `GET /api/ops/analytics/campaigns?tenant_id=${tenantId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/analytics/campaigns`\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-024e044eedba7754", "name": "Dangling fetch: GET /api/ops/messages?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1543)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/messages?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1543)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1543` calls `GET /api/ops/messages?${sp}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/messages`\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-92166717b6647ef0", "name": "Dangling fetch: GET /api/ops/messages/${messageId}/story (src/Invekto.Backend/Dashboard/src/lib/api.ts:1548)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/messages/${messageId}/story (src/Invekto.Backend/Dashboard/src/lib/api.ts:1548)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1548` calls `GET /api/ops/messages/${messageId}/story` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/messages/<p>/story`\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-e0e2ad14042f7799", "name": "Dangling fetch: GET /api/ops/tenants (src/Invekto.Backend/Dashboard/src/lib/api.ts:1553)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/tenants (src/Invekto.Backend/Dashboard/src/lib/api.ts:1553)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1553` calls `GET /api/ops/tenants` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/tenants`\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-27be929a1bc72ea5", "name": "Dangling fetch: GET /api/ops/kanban/${encodeURIComponent(boardKey)} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1559)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/kanban/${encodeURIComponent(boardKey)} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1559)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1559` calls `GET /api/ops/kanban/${encodeURIComponent(boardKey)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/kanban/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9d478637df1fcf08", "name": "Dangling fetch: PATCH /api/ops/kanban/${encodeURIComponent(boardKey)}/cards/${encodeURIComponent(cardSlug)} (src/Invekto", "shortDescription": {"text": "Dangling fetch: PATCH /api/ops/kanban/${encodeURIComponent(boardKey)}/cards/${encodeURIComponent(cardSlug)} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1569)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1569` calls `PATCH /api/ops/kanban/${encodeURIComponent(boardKey)}/cards/${encodeURIComponent(cardSlug)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/kanban/<p>/cards/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8fb14e40de0be47c", "name": "Dangling fetch: GET /api/ops/tenants/${tenantId}/license (src/Invekto.Backend/Dashboard/src/lib/api.ts:1595)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/tenants/${tenantId}/license (src/Invekto.Backend/Dashboard/src/lib/api.ts:1595)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1595` calls `GET /api/ops/tenants/${tenantId}/license` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/tenants/<p>/license`\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-6d880fa7c21de638", "name": "Dangling fetch: PUT /api/ops/tenants/${tenantId}/plan (src/Invekto.Backend/Dashboard/src/lib/api.ts:1603)", "shortDescription": {"text": "Dangling fetch: PUT /api/ops/tenants/${tenantId}/plan (src/Invekto.Backend/Dashboard/src/lib/api.ts:1603)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1603` calls `PUT /api/ops/tenants/${tenantId}/plan` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/tenants/<p>/plan`\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-c8f7cf7a9a028ebf", "name": "Dangling fetch: GET /api/ops/plans (src/Invekto.Backend/Dashboard/src/lib/api.ts:1612)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/plans (src/Invekto.Backend/Dashboard/src/lib/api.ts:1612)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1612` calls `GET /api/ops/plans` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/plans`\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-11737af492cce50a", "name": "Dangling fetch: POST /api/v1/payment/initiate (src/Invekto.Backend/Dashboard/src/lib/api.ts:1616)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/payment/initiate (src/Invekto.Backend/Dashboard/src/lib/api.ts:1616)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1616` calls `POST /api/v1/payment/initiate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/payment/initiate`\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-e83cc027983d1ea0", "name": "Dangling fetch: GET /api/v1/settings/instances (src/Invekto.Backend/Dashboard/src/lib/api.ts:1625)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/settings/instances (src/Invekto.Backend/Dashboard/src/lib/api.ts:1625)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1625` calls `GET /api/v1/settings/instances` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/instances`\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-77f9fffc88c2012e", "name": "Dangling fetch: POST /api/v1/settings/instances/refresh (src/Invekto.Backend/Dashboard/src/lib/api.ts:1629)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/settings/instances/refresh (src/Invekto.Backend/Dashboard/src/lib/api.ts:1629)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1629` calls `POST /api/v1/settings/instances/refresh` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/instances/refresh`\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-a9517b83ac98430c", "name": "Dangling fetch: PUT /api/v1/settings/instances/${instanceId}/toggle (src/Invekto.Backend/Dashboard/src/lib/api.ts:1635)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/settings/instances/${instanceId}/toggle (src/Invekto.Backend/Dashboard/src/lib/api.ts:1635)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1635` calls `PUT /api/v1/settings/instances/${instanceId}/toggle` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/instances/<p>/toggle`\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-9b9ec8700a271674", "name": "Dangling fetch: GET /api/v1/settings/wa-templates?instanceId=${encodeURIComponent(instanceId)} (src/Invekto.Backend/Dash", "shortDescription": {"text": "Dangling fetch: GET /api/v1/settings/wa-templates?instanceId=${encodeURIComponent(instanceId)} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1645)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1645` calls `GET /api/v1/settings/wa-templates?instanceId=${encodeURIComponent(instanceId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/wa-templates`\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-c3e284ecb601c205", "name": "Dangling fetch: GET /api/v1/settings/working-hours (src/Invekto.Backend/Dashboard/src/lib/api.ts:1651)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/settings/working-hours (src/Invekto.Backend/Dashboard/src/lib/api.ts:1651)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1651` calls `GET /api/v1/settings/working-hours` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/working-hours`\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-0e937601d4705376", "name": "Dangling fetch: PUT /api/v1/settings/working-hours (src/Invekto.Backend/Dashboard/src/lib/api.ts:1655)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/settings/working-hours (src/Invekto.Backend/Dashboard/src/lib/api.ts:1655)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1655` calls `PUT /api/v1/settings/working-hours` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/working-hours`\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-3678df3faa05124c", "name": "Dangling fetch: GET /api/v1/settings/sector (src/Invekto.Backend/Dashboard/src/lib/api.ts:1663)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/settings/sector (src/Invekto.Backend/Dashboard/src/lib/api.ts:1663)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1663` calls `GET /api/v1/settings/sector` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/sector`\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-2de70f2c19a54ffc", "name": "Dangling fetch: PUT /api/v1/settings/sector (src/Invekto.Backend/Dashboard/src/lib/api.ts:1667)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/settings/sector (src/Invekto.Backend/Dashboard/src/lib/api.ts:1667)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1667` calls `PUT /api/v1/settings/sector` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/sector`\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-c5e4e8205ca78ab4", "name": "Dangling fetch: GET /api/v1/templates/available (src/Invekto.Backend/Dashboard/src/lib/api.ts:1675)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/templates/available (src/Invekto.Backend/Dashboard/src/lib/api.ts:1675)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1675` calls `GET /api/v1/templates/available` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/templates/available`\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-489716c83a9bc994", "name": "Dangling fetch: POST /api/v1/templates/adopt/${templateId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1679)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/templates/adopt/${templateId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1679)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1679` calls `POST /api/v1/templates/adopt/${templateId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/templates/adopt/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ff72e218cdd9438", "name": "Dangling fetch: GET /api/v1/templates/adoptions (src/Invekto.Backend/Dashboard/src/lib/api.ts:1684)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/templates/adoptions (src/Invekto.Backend/Dashboard/src/lib/api.ts:1684)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1684` calls `GET /api/v1/templates/adoptions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/templates/adoptions`\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-0bc11966361e03d9", "name": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1690)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1690)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1690` calls `GET /api/v1/flow-builder/flows/${tenantId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4af92d833d97cb94", "name": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId}/${flowId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1694)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId}/${flowId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1694)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1694` calls `GET /api/v1/flow-builder/flows/${tenantId}/${flowId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-91e2e0afd9c4f4ea", "name": "Dangling fetch: POST /api/v1/flow-builder/flows/${tenantId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1698)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/${tenantId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1698)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1698` calls `POST /api/v1/flow-builder/flows/${tenantId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0eaea27e378e2759", "name": "Dangling fetch: PUT /api/v1/flow-builder/flows/${tenantId}/${flowId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1704)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/flow-builder/flows/${tenantId}/${flowId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1704)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1704` calls `PUT /api/v1/flow-builder/flows/${tenantId}/${flowId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-24a5bf632ba36eb8", "name": "Dangling fetch: DELETE /api/v1/flow-builder/flows/${tenantId}/${flowId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:17", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/flow-builder/flows/${tenantId}/${flowId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1710)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1710` calls `DELETE /api/v1/flow-builder/flows/${tenantId}/${flowId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-027e89cf8ef58645", "name": "Dangling fetch: POST /api/v1/flow-builder/flows/${tenantId}/${flowId}/activate (src/Invekto.Backend/Dashboard/src/lib/ap", "shortDescription": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/${tenantId}/${flowId}/activate (src/Invekto.Backend/Dashboard/src/lib/api.ts:1714)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1714` calls `POST /api/v1/flow-builder/flows/${tenantId}/${flowId}/activate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>/activate`\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-dd2652f84be90b70", "name": "Dangling fetch: POST /api/v1/flow-builder/flows/${tenantId}/${flowId}/deactivate (src/Invekto.Backend/Dashboard/src/lib/", "shortDescription": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/${tenantId}/${flowId}/deactivate (src/Invekto.Backend/Dashboard/src/lib/api.ts:1718)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1718` calls `POST /api/v1/flow-builder/flows/${tenantId}/${flowId}/deactivate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>/deactivate`\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-a617fd93d84dd223", "name": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId}/${flowId}/versions (src/Invekto.Backend/Dashboard/src/lib/api", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId}/${flowId}/versions (src/Invekto.Backend/Dashboard/src/lib/api.ts:1722)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1722` calls `GET /api/v1/flow-builder/flows/${tenantId}/${flowId}/versions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>/versions`\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-f9e9779e00289677", "name": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId}/${flowId}/versions/${versionNumber} (src/Invekto.Backend/Dash", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId}/${flowId}/versions/${versionNumber} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1726)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1726` calls `GET /api/v1/flow-builder/flows/${tenantId}/${flowId}/versions/${versionNumber}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>/versions/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4220a8889617092a", "name": "Dangling fetch: POST /api/v1/flow-builder/flows/${tenantId}/${flowId}/versions/${versionNumber}/rollback (src/Invekto.Ba", "shortDescription": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/${tenantId}/${flowId}/versions/${versionNumber}/rollback (src/Invekto.Backend/Dashboard/src/lib/api.ts:1730)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1730` calls `POST /api/v1/flow-builder/flows/${tenantId}/${flowId}/versions/${versionNumber}/rollback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>/versions/<p>/rollback`\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-f1571e460f2600b4", "name": "Dangling fetch: POST /api/v1/flow-builder/flows/validate (src/Invekto.Backend/Dashboard/src/lib/api.ts:1734)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/validate (src/Invekto.Backend/Dashboard/src/lib/api.ts:1734)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1734` calls `POST /api/v1/flow-builder/flows/validate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/validate`\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-e6e329d3e80f75a1", "name": "Dangling fetch: POST /api/v1/flow-builder/simulation/start (src/Invekto.Backend/Dashboard/src/lib/api.ts:1740)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/flow-builder/simulation/start (src/Invekto.Backend/Dashboard/src/lib/api.ts:1740)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1740` calls `POST /api/v1/flow-builder/simulation/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/simulation/start`\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-e2bf75cca071cd10", "name": "Dangling fetch: POST /api/v1/flow-builder/simulation/step (src/Invekto.Backend/Dashboard/src/lib/api.ts:1746)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/flow-builder/simulation/step (src/Invekto.Backend/Dashboard/src/lib/api.ts:1746)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1746` calls `POST /api/v1/flow-builder/simulation/step` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/simulation/step`\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-6e05bb3fccb9e3e4", "name": "Dangling fetch: DELETE /api/v1/flow-builder/simulation/${sessionId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1752)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/flow-builder/simulation/${sessionId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1752)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1752` calls `DELETE /api/v1/flow-builder/simulation/${sessionId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/simulation/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e09d2325d9f0be39", "name": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId}/${flowId}/executions?${sp} (src/Invekto.Backend/Dashboard/src", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId}/${flowId}/executions?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1763)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1763` calls `GET /api/v1/flow-builder/flows/${tenantId}/${flowId}/executions?${sp}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>/executions`\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-cca7e7a1890a40f7", "name": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId}/${flowId}/executions/${logId} (src/Invekto.Backend/Dashboard/", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId}/${flowId}/executions/${logId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1768)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1768` calls `GET /api/v1/flow-builder/flows/${tenantId}/${flowId}/executions/${logId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/flows/<p>/<p>/executions/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b8b9ed22f322bc2c", "name": "Dangling fetch: GET /api/v1/flow-builder/monitor/${tenantId}/executions?${sp} (src/Invekto.Backend/Dashboard/src/lib/api", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/monitor/${tenantId}/executions?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1786)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1786` calls `GET /api/v1/flow-builder/monitor/${tenantId}/executions?${sp}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/monitor/<p>/executions`\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-035f9b885e90f23f", "name": "Dangling fetch: GET /api/v1/flow-builder/instances/available${params} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1791", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/instances/available${params} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1791)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1791` calls `GET /api/v1/flow-builder/instances/available${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/instances/available/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e54c92d2e0e99138", "name": "Dangling fetch: GET /api/v1/customer-feature-groups (src/Invekto.Backend/Dashboard/src/lib/api.ts:1796)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/customer-feature-groups (src/Invekto.Backend/Dashboard/src/lib/api.ts:1796)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1796` calls `GET /api/v1/customer-feature-groups` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/customer-feature-groups`\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-1a770b93ab5ccab6", "name": "Dangling fetch: POST /api/v1/customer-feature-groups/cache-invalidate (src/Invekto.Backend/Dashboard/src/lib/api.ts:1800", "shortDescription": {"text": "Dangling fetch: POST /api/v1/customer-feature-groups/cache-invalidate (src/Invekto.Backend/Dashboard/src/lib/api.ts:1800)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1800` calls `POST /api/v1/customer-feature-groups/cache-invalidate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/customer-feature-groups/cache-invalidate`\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-54224ca9dbeae4d8", "name": "Dangling fetch: GET /api/v1/flow-builder/tenant/working-hours (src/Invekto.Backend/Dashboard/src/lib/api.ts:1804)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/flow-builder/tenant/working-hours (src/Invekto.Backend/Dashboard/src/lib/api.ts:1804)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1804` calls `GET /api/v1/flow-builder/tenant/working-hours` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/flow-builder/tenant/working-hours`\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-0b8719e80fb43a05", "name": "Dangling fetch: GET /api/ops/templates/catalog?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1818)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/templates/catalog?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1818)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1818` calls `GET /api/ops/templates/catalog?${sp}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/catalog`\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-972b16681ee278dd", "name": "Dangling fetch: GET /api/ops/templates/catalog/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1823)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/templates/catalog/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1823)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1823` calls `GET /api/ops/templates/catalog/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/catalog/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7bcc436a6e353e9a", "name": "Dangling fetch: POST /api/ops/templates/catalog/${id}/publish (src/Invekto.Backend/Dashboard/src/lib/api.ts:1827)", "shortDescription": {"text": "Dangling fetch: POST /api/ops/templates/catalog/${id}/publish (src/Invekto.Backend/Dashboard/src/lib/api.ts:1827)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1827` calls `POST /api/ops/templates/catalog/${id}/publish` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/catalog/<p>/publish`\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-bb37c0afae7a6771", "name": "Dangling fetch: POST /api/ops/templates/catalog (src/Invekto.Backend/Dashboard/src/lib/api.ts:1832)", "shortDescription": {"text": "Dangling fetch: POST /api/ops/templates/catalog (src/Invekto.Backend/Dashboard/src/lib/api.ts:1832)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1832` calls `POST /api/ops/templates/catalog` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/catalog`\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-0cbe3c3d64b061ae", "name": "Dangling fetch: POST /api/ops/templates/catalog/bulk (src/Invekto.Backend/Dashboard/src/lib/api.ts:1844)", "shortDescription": {"text": "Dangling fetch: POST /api/ops/templates/catalog/bulk (src/Invekto.Backend/Dashboard/src/lib/api.ts:1844)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1844` calls `POST /api/ops/templates/catalog/bulk` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/catalog/bulk`\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-6d5c2e497fc3dbf8", "name": "Dangling fetch: PUT /api/ops/templates/catalog/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1859)", "shortDescription": {"text": "Dangling fetch: PUT /api/ops/templates/catalog/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1859)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1859` calls `PUT /api/ops/templates/catalog/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/catalog/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f4a380e0a45bdfcb", "name": "Dangling fetch: DELETE /api/ops/templates/catalog/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1866)", "shortDescription": {"text": "Dangling fetch: DELETE /api/ops/templates/catalog/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1866)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1866` calls `DELETE /api/ops/templates/catalog/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/catalog/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8c417ceaa4b26e09", "name": "Dangling fetch: GET /api/ops/templates/catalog/${id}/versions (src/Invekto.Backend/Dashboard/src/lib/api.ts:1870)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/templates/catalog/${id}/versions (src/Invekto.Backend/Dashboard/src/lib/api.ts:1870)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1870` calls `GET /api/ops/templates/catalog/${id}/versions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/catalog/<p>/versions`\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-566c70dcfa06e2e3", "name": "Dangling fetch: GET /api/ops/templates/suggestions?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1882)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/templates/suggestions?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1882)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1882` calls `GET /api/ops/templates/suggestions?${sp}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/suggestions`\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-1ded002df4e8ecee", "name": "Dangling fetch: POST /api/ops/templates/extract-from-analysis/${analysisId} (src/Invekto.Backend/Dashboard/src/lib/api.t", "shortDescription": {"text": "Dangling fetch: POST /api/ops/templates/extract-from-analysis/${analysisId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1889)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1889` calls `POST /api/ops/templates/extract-from-analysis/${analysisId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/extract-from-analysis/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d1a5420eb37e30d6", "name": "Dangling fetch: POST /api/ops/templates/suggestions/${id}/review (src/Invekto.Backend/Dashboard/src/lib/api.ts:1896)", "shortDescription": {"text": "Dangling fetch: POST /api/ops/templates/suggestions/${id}/review (src/Invekto.Backend/Dashboard/src/lib/api.ts:1896)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1896` calls `POST /api/ops/templates/suggestions/${id}/review` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/suggestions/<p>/review`\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-5263a66351a18cfb", "name": "Dangling fetch: POST /api/ops/templates/suggestions/bulk-review (src/Invekto.Backend/Dashboard/src/lib/api.ts:1902)", "shortDescription": {"text": "Dangling fetch: POST /api/ops/templates/suggestions/bulk-review (src/Invekto.Backend/Dashboard/src/lib/api.ts:1902)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1902` calls `POST /api/ops/templates/suggestions/bulk-review` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/suggestions/bulk-review`\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-b7b78d6dee2ff0eb", "name": "Dangling fetch: POST /api/ops/templates/${tenantId}/onboard (src/Invekto.Backend/Dashboard/src/lib/api.ts:1908)", "shortDescription": {"text": "Dangling fetch: POST /api/ops/templates/${tenantId}/onboard (src/Invekto.Backend/Dashboard/src/lib/api.ts:1908)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1908` calls `POST /api/ops/templates/${tenantId}/onboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/templates/<p>/onboard`\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-6a69813b73c5f6e6", "name": "Dangling fetch: GET /api/ops/knowledge/${tenantId}/intents (src/Invekto.Backend/Dashboard/src/lib/api.ts:1916)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/knowledge/${tenantId}/intents (src/Invekto.Backend/Dashboard/src/lib/api.ts:1916)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1916` calls `GET /api/ops/knowledge/${tenantId}/intents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/intents`\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-f71a84e53cd51db8", "name": "Dangling fetch: POST /api/ops/knowledge/${tenantId}/intents (src/Invekto.Backend/Dashboard/src/lib/api.ts:1920)", "shortDescription": {"text": "Dangling fetch: POST /api/ops/knowledge/${tenantId}/intents (src/Invekto.Backend/Dashboard/src/lib/api.ts:1920)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1920` calls `POST /api/ops/knowledge/${tenantId}/intents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/intents`\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-f81753bb0dad4e19", "name": "Dangling fetch: PUT /api/ops/knowledge/${tenantId}/intents/${intentId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:192", "shortDescription": {"text": "Dangling fetch: PUT /api/ops/knowledge/${tenantId}/intents/${intentId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1926)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1926` calls `PUT /api/ops/knowledge/${tenantId}/intents/${intentId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/intents/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3627c3ba9f076e53", "name": "Dangling fetch: DELETE /api/ops/knowledge/${tenantId}/intents/${intentId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:", "shortDescription": {"text": "Dangling fetch: DELETE /api/ops/knowledge/${tenantId}/intents/${intentId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1932)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1932` calls `DELETE /api/ops/knowledge/${tenantId}/intents/${intentId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/knowledge/<p>/intents/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-49446561d5873025", "name": "Dangling fetch: GET /api/v1/onboarding/status (src/Invekto.Backend/Dashboard/src/lib/api.ts:1939)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/onboarding/status (src/Invekto.Backend/Dashboard/src/lib/api.ts:1939)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1939` calls `GET /api/v1/onboarding/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/onboarding/status`\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-a4637cc0babc05e2", "name": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/dashboard${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1949)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/dashboard${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1949)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1949` calls `GET /api/v1/wa/${tenantId}/ri/dashboard${qs}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/dashboard/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8db8a9dc6544bf5f", "name": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/revenue${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1957)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/revenue${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1957)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1957` calls `GET /api/v1/wa/${tenantId}/ri/revenue${qs}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/revenue/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-93281143c9c98338", "name": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/agents${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1964)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/agents${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1964)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1964` calls `GET /api/v1/wa/${tenantId}/ri/agents${qs}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/agents/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b63ff36e2d2bf3b0", "name": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/objections${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1971)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/objections${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1971)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1971` calls `GET /api/v1/wa/${tenantId}/ri/objections${qs}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/objections/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e9b6ec3f9f0a34a7", "name": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/response-time${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1978)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/response-time${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1978)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1978` calls `GET /api/v1/wa/${tenantId}/ri/response-time${qs}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/response-time/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8174ed9250e340f8", "name": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/rescue${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1985)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/rescue${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1985)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1985` calls `GET /api/v1/wa/${tenantId}/ri/rescue${qs}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/rescue/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2dc54b3b0f4ee5c7", "name": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/quality${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1992)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/quality${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1992)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1992` calls `GET /api/v1/wa/${tenantId}/ri/quality${qs}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/quality/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b731818828136ccb", "name": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/demand${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1999)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/demand${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1999)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:1999` calls `GET /api/v1/wa/${tenantId}/ri/demand${qs}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/demand/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5b420ed14bc4d7f8", "name": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/templates?sector=${encodeURIComponent(sector)} (src/Invekto.Backend/Dashbo", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/templates?sector=${encodeURIComponent(sector)} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2003)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2003` calls `GET /api/v1/wa/${tenantId}/ri/templates?sector=${encodeURIComponent(sector)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/templates`\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-9e5b7dc92a1011e5", "name": "Dangling fetch: PUT /api/v1/wa/${tenantId}/ri/templates/${type}/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2007", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/wa/${tenantId}/ri/templates/${type}/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2007)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2007` calls `PUT /api/v1/wa/${tenantId}/ri/templates/${type}/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/templates/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-69810c7e2797c3ba", "name": "Dangling fetch: POST /api/v1/wa/${tenantId}/ri/templates/${type} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2014)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/wa/${tenantId}/ri/templates/${type} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2014)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2014` calls `POST /api/v1/wa/${tenantId}/ri/templates/${type}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/templates/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5fc41bb5f3439a31", "name": "Dangling fetch: PUT /api/v1/wa/${tenantId}/ri/templates/${type}/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2021", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/wa/${tenantId}/ri/templates/${type}/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2021)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2021` calls `PUT /api/v1/wa/${tenantId}/ri/templates/${type}/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/templates/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-549321cd5861ccd1", "name": "Dangling fetch: DELETE /api/v1/wa/${tenantId}/ri/templates/${type}/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/wa/${tenantId}/ri/templates/${type}/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2028)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2028` calls `DELETE /api/v1/wa/${tenantId}/ri/templates/${type}/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/templates/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b69964ca09e5e57a", "name": "Dangling fetch: POST /api/v1/wa/${tenantId}/ri/feedback (src/Invekto.Backend/Dashboard/src/lib/api.ts:2034)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/wa/${tenantId}/ri/feedback (src/Invekto.Backend/Dashboard/src/lib/api.ts:2034)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2034` calls `POST /api/v1/wa/${tenantId}/ri/feedback` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/feedback`\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-21ae73e91cc13a08", "name": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/benchmarks?sector=${encodeURIComponent(sector)} (src/Invekto.Backend/Dashb", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/benchmarks?sector=${encodeURIComponent(sector)} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2041)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2041` calls `GET /api/v1/wa/${tenantId}/ri/benchmarks?sector=${encodeURIComponent(sector)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/benchmarks`\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-2932a15e210422c5", "name": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/onboarding${params} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2046)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/onboarding${params} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2046)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2046` calls `GET /api/v1/wa/${tenantId}/ri/onboarding${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/wa/<p>/ri/onboarding/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee3eb88ceb41022d", "name": "Dangling fetch: GET /api/v1/rescue/stats (src/Invekto.Backend/Dashboard/src/lib/api.ts:2052)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/rescue/stats (src/Invekto.Backend/Dashboard/src/lib/api.ts:2052)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2052` calls `GET /api/v1/rescue/stats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/rescue/stats`\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-2011d82f0b50fff9", "name": "Dangling fetch: GET /api/v1/rescue/risks${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2060)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/rescue/risks${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2060)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2060` calls `GET /api/v1/rescue/risks${qs}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/rescue/risks/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2cd76b970d74069b", "name": "Dangling fetch: PUT /api/v1/rescue/risks/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2064)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/rescue/risks/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2064)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2064` calls `PUT /api/v1/rescue/risks/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/rescue/risks/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-41e6413d619d34b0", "name": "Dangling fetch: GET /api/v1/rescue/templates${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2075)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/rescue/templates${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2075)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2075` calls `GET /api/v1/rescue/templates${qs}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/rescue/templates/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa0b270d5596c80c", "name": "Dangling fetch: POST /api/v1/rescue/templates (src/Invekto.Backend/Dashboard/src/lib/api.ts:2079)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/rescue/templates (src/Invekto.Backend/Dashboard/src/lib/api.ts:2079)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2079` calls `POST /api/v1/rescue/templates` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/rescue/templates`\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-4570e5ce9c7352b0", "name": "Dangling fetch: PUT /api/v1/rescue/templates/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2086)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/rescue/templates/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2086)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2086` calls `PUT /api/v1/rescue/templates/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/rescue/templates/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-16fc778316e1ae59", "name": "Dangling fetch: DELETE /api/v1/rescue/templates/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2093)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/rescue/templates/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2093)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2093` calls `DELETE /api/v1/rescue/templates/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/rescue/templates/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ab30ba594668b895", "name": "Dangling fetch: GET /api/ops/webchat/conversations${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2102)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/webchat/conversations${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2102)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2102` calls `GET /api/ops/webchat/conversations${qs}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/webchat/conversations/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee6d03514b09795d", "name": "Dangling fetch: GET /api/ops/webchat/conversations/${conversationId}/messages (src/Invekto.Backend/Dashboard/src/lib/api", "shortDescription": {"text": "Dangling fetch: GET /api/ops/webchat/conversations/${conversationId}/messages (src/Invekto.Backend/Dashboard/src/lib/api.ts:2106)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2106` calls `GET /api/ops/webchat/conversations/${conversationId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/webchat/conversations/<p>/messages`\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-8993e17a76840889", "name": "Dangling fetch: POST /api/ops/webchat/conversations/${conversationId}/messages (src/Invekto.Backend/Dashboard/src/lib/ap", "shortDescription": {"text": "Dangling fetch: POST /api/ops/webchat/conversations/${conversationId}/messages (src/Invekto.Backend/Dashboard/src/lib/api.ts:2110)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2110` calls `POST /api/ops/webchat/conversations/${conversationId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/webchat/conversations/<p>/messages`\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-bbf4d060bfda5a96", "name": "Dangling fetch: PUT /api/ops/webchat/conversations/${conversationId}/close (src/Invekto.Backend/Dashboard/src/lib/api.ts", "shortDescription": {"text": "Dangling fetch: PUT /api/ops/webchat/conversations/${conversationId}/close (src/Invekto.Backend/Dashboard/src/lib/api.ts:2117)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2117` calls `PUT /api/ops/webchat/conversations/${conversationId}/close` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/webchat/conversations/<p>/close`\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-a1a7d98f0518ac1e", "name": "Dangling fetch: PUT /api/ops/webchat/conversations/${conversationId}/route-ai (src/Invekto.Backend/Dashboard/src/lib/api", "shortDescription": {"text": "Dangling fetch: PUT /api/ops/webchat/conversations/${conversationId}/route-ai (src/Invekto.Backend/Dashboard/src/lib/api.ts:2123)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2123` calls `PUT /api/ops/webchat/conversations/${conversationId}/route-ai` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/webchat/conversations/<p>/route-ai`\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-6d6a6748363c9984", "name": "Dangling fetch: GET /api/ops/webchat/conversations/${conversationId}/visitor (src/Invekto.Backend/Dashboard/src/lib/api.", "shortDescription": {"text": "Dangling fetch: GET /api/ops/webchat/conversations/${conversationId}/visitor (src/Invekto.Backend/Dashboard/src/lib/api.ts:2129)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2129` calls `GET /api/ops/webchat/conversations/${conversationId}/visitor` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/ops/webchat/conversations/<p>/visitor`\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-46e778fda868f86e", "name": "Dangling fetch: GET /api/v1/tenant/landing/settings (src/Invekto.Backend/Dashboard/src/lib/api.ts:2134)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant/landing/settings (src/Invekto.Backend/Dashboard/src/lib/api.ts:2134)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2134` calls `GET /api/v1/tenant/landing/settings` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant/landing/settings`\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-a15d8731cb0fcbdc", "name": "Dangling fetch: POST /api/v1/tenant/landing/apikey/rotate (src/Invekto.Backend/Dashboard/src/lib/api.ts:2140)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/tenant/landing/apikey/rotate (src/Invekto.Backend/Dashboard/src/lib/api.ts:2140)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2140` calls `POST /api/v1/tenant/landing/apikey/rotate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant/landing/apikey/rotate`\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-c228e95ba48d1c4d", "name": "Dangling fetch: POST /api/v1/tenant/landing/apikey/revoke (src/Invekto.Backend/Dashboard/src/lib/api.ts:2147)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/tenant/landing/apikey/revoke (src/Invekto.Backend/Dashboard/src/lib/api.ts:2147)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2147` calls `POST /api/v1/tenant/landing/apikey/revoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant/landing/apikey/revoke`\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-c2362fc9391c5a52", "name": "Dangling fetch: PUT /api/v1/tenant/landing/fieldmap (src/Invekto.Backend/Dashboard/src/lib/api.ts:2156)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/tenant/landing/fieldmap (src/Invekto.Backend/Dashboard/src/lib/api.ts:2156)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2156` calls `PUT /api/v1/tenant/landing/fieldmap` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant/landing/fieldmap`\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-4e5d20da43fdf5ac", "name": "Dangling fetch: POST /api/v1/tenant/landing/dry-run (src/Invekto.Backend/Dashboard/src/lib/api.ts:2164)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/tenant/landing/dry-run (src/Invekto.Backend/Dashboard/src/lib/api.ts:2164)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2164` calls `POST /api/v1/tenant/landing/dry-run` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant/landing/dry-run`\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-97cc391497701826", "name": "Dangling fetch: GET /api/v1/tenant/landing/audit${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2173)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant/landing/audit${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2173)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2173` calls `GET /api/v1/tenant/landing/audit${qs}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant/landing/audit/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dc3f96f8e68f6ccf", "name": "Dangling fetch: GET /api/v1/dynamic-fields (src/Invekto.Backend/Dashboard/src/lib/api.ts:2182)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/dynamic-fields (src/Invekto.Backend/Dashboard/src/lib/api.ts:2182)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2182` calls `GET /api/v1/dynamic-fields` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/dynamic-fields`\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-d0abc29b1fc39469", "name": "Dangling fetch: POST /api/v1/dynamic-fields/cache-invalidate (src/Invekto.Backend/Dashboard/src/lib/api.ts:2186)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/dynamic-fields/cache-invalidate (src/Invekto.Backend/Dashboard/src/lib/api.ts:2186)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2186` calls `POST /api/v1/dynamic-fields/cache-invalidate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/dynamic-fields/cache-invalidate`\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-5a2d7f010268d03b", "name": "Dangling fetch: GET /api/v1/tenant-settings/field-mapping (src/Invekto.Backend/Dashboard/src/lib/api.ts:2199)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant-settings/field-mapping (src/Invekto.Backend/Dashboard/src/lib/api.ts:2199)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2199` calls `GET /api/v1/tenant-settings/field-mapping` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/field-mapping`\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-10aeb062c46b9f4e", "name": "Dangling fetch: PUT /api/v1/tenant-settings/field-mapping (src/Invekto.Backend/Dashboard/src/lib/api.ts:2203)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/field-mapping (src/Invekto.Backend/Dashboard/src/lib/api.ts:2203)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2203` calls `PUT /api/v1/tenant-settings/field-mapping` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/field-mapping`\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-5eace26bb5ef9021", "name": "Dangling fetch: GET /api/v1/tenant-settings/followup-sequence (src/Invekto.Backend/Dashboard/src/lib/api.ts:2215)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant-settings/followup-sequence (src/Invekto.Backend/Dashboard/src/lib/api.ts:2215)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2215` calls `GET /api/v1/tenant-settings/followup-sequence` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/followup-sequence`\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-5a72b47b7bebbf8c", "name": "Dangling fetch: PUT /api/v1/tenant-settings/followup-sequence (src/Invekto.Backend/Dashboard/src/lib/api.ts:2219)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/followup-sequence (src/Invekto.Backend/Dashboard/src/lib/api.ts:2219)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2219` calls `PUT /api/v1/tenant-settings/followup-sequence` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/followup-sequence`\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-ba0a40e3207319b2", "name": "Dangling fetch: GET /api/v1/tenant/followup/runs (src/Invekto.Backend/Dashboard/src/lib/api.ts:2227)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant/followup/runs (src/Invekto.Backend/Dashboard/src/lib/api.ts:2227)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2227` calls `GET /api/v1/tenant/followup/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant/followup/runs`\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-d3694bd83bc7239e", "name": "Dangling fetch: GET /api/v1/tenant-settings/campaign-config (src/Invekto.Backend/Dashboard/src/lib/api.ts:2239)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant-settings/campaign-config (src/Invekto.Backend/Dashboard/src/lib/api.ts:2239)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2239` calls `GET /api/v1/tenant-settings/campaign-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/campaign-config`\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-d411bb71d1c6691d", "name": "Dangling fetch: PUT /api/v1/tenant-settings/campaign-config (src/Invekto.Backend/Dashboard/src/lib/api.ts:2243)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/campaign-config (src/Invekto.Backend/Dashboard/src/lib/api.ts:2243)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2243` calls `PUT /api/v1/tenant-settings/campaign-config` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/campaign-config`\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-9387fd3ea509ba73", "name": "Dangling fetch: GET /api/v1/tenant-settings/clinic-metadata (src/Invekto.Backend/Dashboard/src/lib/api.ts:2259)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant-settings/clinic-metadata (src/Invekto.Backend/Dashboard/src/lib/api.ts:2259)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2259` calls `GET /api/v1/tenant-settings/clinic-metadata` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/clinic-metadata`\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-0be5645d8c4dc381", "name": "Dangling fetch: PUT /api/v1/tenant-settings/clinic-metadata (src/Invekto.Backend/Dashboard/src/lib/api.ts:2263)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/clinic-metadata (src/Invekto.Backend/Dashboard/src/lib/api.ts:2263)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2263` calls `PUT /api/v1/tenant-settings/clinic-metadata` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/clinic-metadata`\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-6b3a2e192804e0f2", "name": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen (src/Invekto.Backend/Dashboard/src/lib/api.ts:2279)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen (src/Invekto.Backend/Dashboard/src/lib/api.ts:2279)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2279` calls `GET /api/v1/tenant-settings/meta-leadgen` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/meta-leadgen`\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-7b1904eeae5a1f6b", "name": "Dangling fetch: PUT /api/v1/tenant-settings/meta-leadgen (src/Invekto.Backend/Dashboard/src/lib/api.ts:2283)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/meta-leadgen (src/Invekto.Backend/Dashboard/src/lib/api.ts:2283)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2283` calls `PUT /api/v1/tenant-settings/meta-leadgen` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/meta-leadgen`\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-1642602d0e69ab59", "name": "Dangling fetch: POST /api/v1/tenant-settings/meta-leadgen/rotate-verify-token (src/Invekto.Backend/Dashboard/src/lib/api", "shortDescription": {"text": "Dangling fetch: POST /api/v1/tenant-settings/meta-leadgen/rotate-verify-token (src/Invekto.Backend/Dashboard/src/lib/api.ts:2291)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2291` calls `POST /api/v1/tenant-settings/meta-leadgen/rotate-verify-token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/meta-leadgen/rotate-verify-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-8a9a7ca2b2b561df", "name": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen/discover-forms (src/Invekto.Backend/Dashboard/src/lib/api.ts:22", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen/discover-forms (src/Invekto.Backend/Dashboard/src/lib/api.ts:2297)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2297` calls `GET /api/v1/tenant-settings/meta-leadgen/discover-forms` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/meta-leadgen/discover-forms`\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-d3bc10dd01f49279", "name": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen/events?limit=${limit} (src/Invekto.Backend/Dashboard/src/lib/ap", "shortDescription": {"text": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen/events?limit=${limit} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2301)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2301` calls `GET /api/v1/tenant-settings/meta-leadgen/events?limit=${limit}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/tenant-settings/meta-leadgen/events`\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-be23895f1709103d", "name": "Dangling fetch: GET /api/v1/outbound/templates${q} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2310)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/templates${q} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2310)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2310` calls `GET /api/v1/outbound/templates${q}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/templates/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e6478719c3815628", "name": "Dangling fetch: GET /api/v1/outbound/data-lists (src/Invekto.Backend/Dashboard/src/lib/api.ts:2314)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/data-lists (src/Invekto.Backend/Dashboard/src/lib/api.ts:2314)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2314` calls `GET /api/v1/outbound/data-lists` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists`\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-32ae2402ae9eb677", "name": "Dangling fetch: POST /api/v1/outbound/data-lists (src/Invekto.Backend/Dashboard/src/lib/api.ts:2318)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/data-lists (src/Invekto.Backend/Dashboard/src/lib/api.ts:2318)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2318` calls `POST /api/v1/outbound/data-lists` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists`\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-afa14df8fff8501f", "name": "Dangling fetch: PUT /api/v1/outbound/data-lists/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2326)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/outbound/data-lists/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2326)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2326` calls `PUT /api/v1/outbound/data-lists/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9455b0284d238eaa", "name": "Dangling fetch: DELETE /api/v1/outbound/data-lists/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2334)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/outbound/data-lists/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2334)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2334` calls `DELETE /api/v1/outbound/data-lists/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c99104b2b994a709", "name": "Dangling fetch: POST /api/v1/outbound/data-lists/records/exists (src/Invekto.Backend/Dashboard/src/lib/api.ts:2340)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/data-lists/records/exists (src/Invekto.Backend/Dashboard/src/lib/api.ts:2340)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2340` calls `POST /api/v1/outbound/data-lists/records/exists` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists/records/exists`\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-947f8c60c54723de", "name": "Dangling fetch: POST /api/v1/outbound/data-lists/import (src/Invekto.Backend/Dashboard/src/lib/api.ts:2348)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/data-lists/import (src/Invekto.Backend/Dashboard/src/lib/api.ts:2348)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2348` calls `POST /api/v1/outbound/data-lists/import` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists/import`\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-0acebb065703d432", "name": "Dangling fetch: GET /api/v1/outbound/data-lists/${listId}/records?${p.toString()} (src/Invekto.Backend/Dashboard/src/lib", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/data-lists/${listId}/records?${p.toString()} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2370)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2370` calls `GET /api/v1/outbound/data-lists/${listId}/records?${p.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists/<p>/records`\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-473a5ee458979325", "name": "Dangling fetch: POST /api/v1/outbound/data-lists/${listId}/records (src/Invekto.Backend/Dashboard/src/lib/api.ts:2376)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/data-lists/${listId}/records (src/Invekto.Backend/Dashboard/src/lib/api.ts:2376)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2376` calls `POST /api/v1/outbound/data-lists/${listId}/records` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists/<p>/records`\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-d46b321da60a2892", "name": "Dangling fetch: DELETE /api/v1/outbound/data-lists/${listId}/records/${recordId} (src/Invekto.Backend/Dashboard/src/lib/", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/outbound/data-lists/${listId}/records/${recordId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2384)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2384` calls `DELETE /api/v1/outbound/data-lists/${listId}/records/${recordId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/data-lists/<p>/records/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-854c97e71424225e", "name": "Dangling fetch: POST /api/v1/outbound/bulk-send/preview-from-list (src/Invekto.Backend/Dashboard/src/lib/api.ts:2389)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/bulk-send/preview-from-list (src/Invekto.Backend/Dashboard/src/lib/api.ts:2389)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2389` calls `POST /api/v1/outbound/bulk-send/preview-from-list` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/bulk-send/preview-from-list`\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-570eaae205cd8657", "name": "Dangling fetch: POST /api/v1/outbound/bulk-send/confirm (src/Invekto.Backend/Dashboard/src/lib/api.ts:2397)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/bulk-send/confirm (src/Invekto.Backend/Dashboard/src/lib/api.ts:2397)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2397` calls `POST /api/v1/outbound/bulk-send/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/bulk-send/confirm`\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-25b7ce1f88c7be27", "name": "Dangling fetch: GET /api/v1/outbound/bulk-send/${encodeURIComponent(campaignId)}/status (src/Invekto.Backend/Dashboard/s", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/bulk-send/${encodeURIComponent(campaignId)}/status (src/Invekto.Backend/Dashboard/src/lib/api.ts:2405)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2405` calls `GET /api/v1/outbound/bulk-send/${encodeURIComponent(campaignId)}/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/bulk-send/<p>/status`\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-c7d032342b131912", "name": "Dangling fetch: GET /api/v1/outbound/projects/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2417)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/projects/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2417)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2417` calls `GET /api/v1/outbound/projects/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8ece60b2fab75b52", "name": "Dangling fetch: POST /api/v1/outbound/projects (src/Invekto.Backend/Dashboard/src/lib/api.ts:2421)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects (src/Invekto.Backend/Dashboard/src/lib/api.ts:2421)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2421` calls `POST /api/v1/outbound/projects` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects`\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-e91c450323385f0e", "name": "Dangling fetch: PUT /api/v1/outbound/projects/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2429)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/outbound/projects/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2429)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2429` calls `PUT /api/v1/outbound/projects/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ced3055f95c88a28", "name": "Dangling fetch: DELETE /api/v1/outbound/projects/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2438)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/outbound/projects/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2438)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2438` calls `DELETE /api/v1/outbound/projects/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4b51c432d0b416e8", "name": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/send/preview (src/Invekto.Backend/Dashboard/src/lib/api.ts:2", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/send/preview (src/Invekto.Backend/Dashboard/src/lib/api.ts:2447)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2447` calls `POST /api/v1/outbound/projects/${projectId}/send/preview` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/send/preview`\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-3f0b44b1cc51cc80", "name": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/send/confirm (src/Invekto.Backend/Dashboard/src/lib/api.ts:2", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/send/confirm (src/Invekto.Backend/Dashboard/src/lib/api.ts:2455)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2455` calls `POST /api/v1/outbound/projects/${projectId}/send/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/send/confirm`\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-7d6280d8d7426d65", "name": "Dangling fetch: GET /api/v1/outbound/projects/${projectId}/send/status (src/Invekto.Backend/Dashboard/src/lib/api.ts:246", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/projects/${projectId}/send/status (src/Invekto.Backend/Dashboard/src/lib/api.ts:2463)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2463` calls `GET /api/v1/outbound/projects/${projectId}/send/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/send/status`\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-35d19014e6dfc433", "name": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/send/pause (src/Invekto.Backend/Dashboard/src/lib/api.ts:246", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/send/pause (src/Invekto.Backend/Dashboard/src/lib/api.ts:2468)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2468` calls `POST /api/v1/outbound/projects/${projectId}/send/pause` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/send/pause`\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-d513c4dcf1d36c5e", "name": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/send/resume (src/Invekto.Backend/Dashboard/src/lib/api.ts:24", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/send/resume (src/Invekto.Backend/Dashboard/src/lib/api.ts:2472)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2472` calls `POST /api/v1/outbound/projects/${projectId}/send/resume` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/send/resume`\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-80647871fc900867", "name": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/send/cancel (src/Invekto.Backend/Dashboard/src/lib/api.ts:24", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/send/cancel (src/Invekto.Backend/Dashboard/src/lib/api.ts:2476)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2476` calls `POST /api/v1/outbound/projects/${projectId}/send/cancel` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/send/cancel`\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-e44a9a3c8f16bb6f", "name": "Dangling fetch: GET /api/v1/outbound/projects/${projectId}/report/runs (src/Invekto.Backend/Dashboard/src/lib/api.ts:248", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/projects/${projectId}/report/runs (src/Invekto.Backend/Dashboard/src/lib/api.ts:2481)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2481` calls `GET /api/v1/outbound/projects/${projectId}/report/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/report/runs`\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-4bb9b72e444e2a2a", "name": "Dangling fetch: GET /api/v1/outbound/projects/${projectId}/report/recipients?${qs.toString()} (src/Invekto.Backend/Dashb", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/projects/${projectId}/report/recipients?${qs.toString()} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2493)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2493` calls `GET /api/v1/outbound/projects/${projectId}/report/recipients?${qs.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/report/recipients`\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-562be0d1f03f9728", "name": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/report/resend (src/Invekto.Backend/Dashboard/src/lib/api.ts:", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/report/resend (src/Invekto.Backend/Dashboard/src/lib/api.ts:2498)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2498` calls `POST /api/v1/outbound/projects/${projectId}/report/resend` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/report/resend`\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-5e557a9942d6571d", "name": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/report/resend-bulk (src/Invekto.Backend/Dashboard/src/lib/ap", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/report/resend-bulk (src/Invekto.Backend/Dashboard/src/lib/api.ts:2507)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2507` calls `POST /api/v1/outbound/projects/${projectId}/report/resend-bulk` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/report/resend-bulk`\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-0bb07068edb2a0d6", "name": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/report/refresh-status (src/Invekto.Backend/Dashboard/src/lib", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/report/refresh-status (src/Invekto.Backend/Dashboard/src/lib/api.ts:2515)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2515` calls `POST /api/v1/outbound/projects/${projectId}/report/refresh-status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/<p>/report/refresh-status`\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-949839fbf1e5762d", "name": "Dangling fetch: POST /api/v1/outbound/projects/send/test (src/Invekto.Backend/Dashboard/src/lib/api.ts:2525)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/projects/send/test (src/Invekto.Backend/Dashboard/src/lib/api.ts:2525)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2525` calls `POST /api/v1/outbound/projects/send/test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/projects/send/test`\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-399aa77242e585ad", "name": "Dangling fetch: GET /api/v1/outbound/broadcast/${encodeURIComponent(broadcastId)}/status (src/Invekto.Backend/Dashboard/", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/broadcast/${encodeURIComponent(broadcastId)}/status (src/Invekto.Backend/Dashboard/src/lib/api.ts:2535)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2535` calls `GET /api/v1/outbound/broadcast/${encodeURIComponent(broadcastId)}/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/broadcast/<p>/status`\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-ca3ced76d6a410b8", "name": "Dangling fetch: GET /api/v1/outbound/exports/send-jobs (src/Invekto.Backend/Dashboard/src/lib/api.ts:2541)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/exports/send-jobs (src/Invekto.Backend/Dashboard/src/lib/api.ts:2541)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2541` calls `GET /api/v1/outbound/exports/send-jobs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/exports/send-jobs`\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-f7a50499a9db4794", "name": "Dangling fetch: GET /api/v1/outbound/exports/send-job/${jobId}/report-data?for=pdf (src/Invekto.Backend/Dashboard/src/li", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/exports/send-job/${jobId}/report-data?for=pdf (src/Invekto.Backend/Dashboard/src/lib/api.ts:2553)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2553` calls `GET /api/v1/outbound/exports/send-job/${jobId}/report-data?for=pdf` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/exports/send-job/<p>/report-data`\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-fa1754a9a151f473", "name": "Dangling fetch: GET /api/v1/outbound/exports/filter-options (src/Invekto.Backend/Dashboard/src/lib/api.ts:2571)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/exports/filter-options (src/Invekto.Backend/Dashboard/src/lib/api.ts:2571)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2571` calls `GET /api/v1/outbound/exports/filter-options` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/exports/filter-options`\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-17620f07de950161", "name": "Dangling fetch: GET /api/v1/outbound/exports/recipients/count${this.exportFilterQuery(filter)} (src/Invekto.Backend/Dash", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/exports/recipients/count${this.exportFilterQuery(filter)} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2575)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2575` calls `GET /api/v1/outbound/exports/recipients/count${this.exportFilterQuery(filter)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/exports/recipients/count/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7da40cbf0ec248b7", "name": "Dangling fetch: POST /api/v1/outbound/exports/recipients/create-list (src/Invekto.Backend/Dashboard/src/lib/api.ts:2586)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/outbound/exports/recipients/create-list (src/Invekto.Backend/Dashboard/src/lib/api.ts:2586)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2586` calls `POST /api/v1/outbound/exports/recipients/create-list` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/exports/recipients/create-list`\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-bdad849cccabeb21", "name": "Dangling fetch: GET /api/v1/outbound/exports/history (src/Invekto.Backend/Dashboard/src/lib/api.ts:2604)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/outbound/exports/history (src/Invekto.Backend/Dashboard/src/lib/api.ts:2604)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/lib/api.ts:2604` calls `GET /api/v1/outbound/exports/history` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/outbound/exports/history`\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-a58cb350bf139653", "name": "Dangling fetch: GET /api/ops/postman (src/Invekto.Backend/Dashboard/src/pages/TenantsPage.tsx:88)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/postman (src/Invekto.Backend/Dashboard/src/pages/TenantsPage.tsx:88)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/pages/TenantsPage.tsx:88` calls `GET /api/ops/postman` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ops/postman`\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-91d5116f2b2de79f", "name": "Dangling fetch: GET /ops/voice-jwt (src/Invekto.Backend/Dashboard/src/pages/VoiceTestPage.tsx:56)", "shortDescription": {"text": "Dangling fetch: GET /ops/voice-jwt (src/Invekto.Backend/Dashboard/src/pages/VoiceTestPage.tsx:56)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/pages/VoiceTestPage.tsx:56` calls `GET /ops/voice-jwt` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ops/voice-jwt`\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-8226ea47b40ba17e", "name": "Dangling fetch: GET /api/ops/postman (src/Invekto.Backend/Dashboard/src/pages/DashboardPage.tsx:66)", "shortDescription": {"text": "Dangling fetch: GET /api/ops/postman (src/Invekto.Backend/Dashboard/src/pages/DashboardPage.tsx:66)"}, "fullDescription": {"text": "`src/Invekto.Backend/Dashboard/src/pages/DashboardPage.tsx:66` calls `GET /api/ops/postman` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ops/postman`\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-02b8e3d182bcc4ee", "name": "Unused endpoint: USE /api/jwt", "shortDescription": {"text": "Unused endpoint: USE /api/jwt"}, "fullDescription": {"text": "`tools/simulator/server.js` declares `USE /api/jwt` 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-ccd9c54d68b606cd", "name": "Unused endpoint: USE /api/webhook", "shortDescription": {"text": "Unused endpoint: USE /api/webhook"}, "fullDescription": {"text": "`tools/simulator/server.js` declares `USE /api/webhook` 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-4e780bf54f4b9035", "name": "Unused endpoint: USE /api/callback", "shortDescription": {"text": "Unused endpoint: USE /api/callback"}, "fullDescription": {"text": "`tools/simulator/server.js` declares `USE /api/callback` 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-972b54078ec2581f", "name": "Unused endpoint: USE /api/health", "shortDescription": {"text": "Unused endpoint: USE /api/health"}, "fullDescription": {"text": "`tools/simulator/server.js` declares `USE /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-e4b2c2b7682a8346", "name": "Unused endpoint: USE /api/logs", "shortDescription": {"text": "Unused endpoint: USE /api/logs"}, "fullDescription": {"text": "`tools/simulator/server.js` declares `USE /api/logs` 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-3b424b7659db9932", "name": "Unused endpoint: USE /api/scenarios", "shortDescription": {"text": "Unused endpoint: USE /api/scenarios"}, "fullDescription": {"text": "`tools/simulator/server.js` declares `USE /api/scenarios` 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-35ede0341866225f", "name": "Unused endpoint: USE /api/traffic", "shortDescription": {"text": "Unused endpoint: USE /api/traffic"}, "fullDescription": {"text": "`tools/simulator/server.js` declares `USE /api/traffic` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7a009b1a56794f45", "name": "Unused endpoint: POST /", "shortDescription": {"text": "Unused endpoint: POST /"}, "fullDescription": {"text": "`tools/simulator/src/routes/callback.js` declares `POST /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-970eb92d6ec2bfaa", "name": "Unused endpoint: POST /generate", "shortDescription": {"text": "Unused endpoint: POST /generate"}, "fullDescription": {"text": "`tools/simulator/src/routes/jwt.js` declares `POST /generate` 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-c1aa087bfabf644c", "name": "Unused endpoint: POST /decode", "shortDescription": {"text": "Unused endpoint: POST /decode"}, "fullDescription": {"text": "`tools/simulator/src/routes/jwt.js` declares `POST /decode` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`tools/simulator/src/routes/scenarios.js` declares `GET /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-69a693dfc33637f4", "name": "Unused endpoint: POST /run", "shortDescription": {"text": "Unused endpoint: POST /run"}, "fullDescription": {"text": "`tools/simulator/src/routes/scenarios.js` declares `POST /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-e69c90752a76eba5", "name": "Unused endpoint: POST /stop", "shortDescription": {"text": "Unused endpoint: POST /stop"}, "fullDescription": {"text": "`tools/simulator/src/routes/scenarios.js` declares `POST /stop` 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-2f222a275ed687b3", "name": "Unused endpoint: POST /send", "shortDescription": {"text": "Unused endpoint: POST /send"}, "fullDescription": {"text": "`tools/simulator/src/routes/webhook.js` declares `POST /send` 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-3b5c17c01e439662", "name": "Unused endpoint: POST /request", "shortDescription": {"text": "Unused endpoint: POST /request"}, "fullDescription": {"text": "`tools/simulator/src/routes/webhook.js` declares `POST /request` 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-a8c328924d8724c9", "name": "Unused endpoint: GET /services", "shortDescription": {"text": "Unused endpoint: GET /services"}, "fullDescription": {"text": "`tools/simulator/src/routes/webhook.js` declares `GET /services` 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-9de4cecd0e235584", "name": "Unused endpoint: GET /pending", "shortDescription": {"text": "Unused endpoint: GET /pending"}, "fullDescription": {"text": "`tools/simulator/src/routes/traffic.js` declares `GET /pending` 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-3b30f4c0994a30b4", "name": "Unused endpoint: DELETE /", "shortDescription": {"text": "Unused endpoint: DELETE /"}, "fullDescription": {"text": "`tools/simulator/src/routes/traffic.js` declares `DELETE /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e5f899fff8e655a2", "name": "Unused endpoint: GET /check", "shortDescription": {"text": "Unused endpoint: GET /check"}, "fullDescription": {"text": "`tools/simulator/src/routes/health.js` declares `GET /check` 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-35a741079ddc6fcc", "name": "Unused endpoint: GET /stream", "shortDescription": {"text": "Unused endpoint: GET /stream"}, "fullDescription": {"text": "`tools/simulator/src/routes/logs.js` declares `GET /stream` 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-210acf59dc030082", "name": "Unused endpoint: GET /grouped", "shortDescription": {"text": "Unused endpoint: GET /grouped"}, "fullDescription": {"text": "`tools/simulator/src/routes/logs.js` declares `GET /grouped` 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-1515654f1d0fdbfe", "name": "Unused endpoint: GET /errors", "shortDescription": {"text": "Unused endpoint: GET /errors"}, "fullDescription": {"text": "`tools/simulator/src/routes/logs.js` declares `GET /errors` 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/21689"}, "properties": {"repository": "trustedadvisor2020/invektoservice", "repoUrl": "https://github.com/trustedadvisor2020/invektoservice", "branch": "main"}, "results": [{"ruleId": "scanner-27f674fefd4ea834", "level": "note", "message": {"text": "Possibly dead Python function: add_footer"}, "properties": {"repobilityId": "f7c2648a9576977f", "scanner": "scanner-primary", "fingerprint": "27f674fefd4ea834", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/docs/senaryo-pdfs/md2pdf.py:284"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-46e7fe22fe590895", "level": "note", "message": {"text": "Possibly dead Python function: wrap"}, "properties": {"repobilityId": "67bfdfc1acedae4b", "scanner": "scanner-primary", "fingerprint": "46e7fe22fe590895", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/docs/senaryo-pdfs/generate-apple-pdf.py:76"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-64adf7724fdffef0", "level": "note", "message": {"text": "Possibly dead Python function: draw"}, "properties": {"repobilityId": "53ecb21dcbad2db9", "scanner": "scanner-primary", "fingerprint": "64adf7724fdffef0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/docs/senaryo-pdfs/generate-apple-pdf.py:77"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0e86725f54ef64b5", "level": "note", "message": {"text": "Possibly dead Python function: add_page_number"}, "properties": {"repobilityId": "4d002de3b577b731", "scanner": "scanner-primary", "fingerprint": "0e86725f54ef64b5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/docs/senaryo-pdfs/generate-pdf.py:303"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-386dd79b930ce49e", "level": "note", "message": {"text": "Possibly dead Python function: wrap"}, "properties": {"repobilityId": "67bfdfc1acedae4b", "scanner": "scanner-primary", "fingerprint": "386dd79b930ce49e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/docs/senaryo-pdfs/md2pdf-apple.py:60"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c4d345218e9f456e", "level": "note", "message": {"text": "Possibly dead Python function: draw"}, "properties": {"repobilityId": "53ecb21dcbad2db9", "scanner": "scanner-primary", "fingerprint": "c4d345218e9f456e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/docs/senaryo-pdfs/md2pdf-apple.py:61"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4a89b05172bafa5d", "level": "note", "message": {"text": "Possibly dead Python function: metrics_row"}, "properties": {"repobilityId": "0b4de1063c63e805", "scanner": "scanner-primary", "fingerprint": "4a89b05172bafa5d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/docs/senaryo-pdfs/md2pdf-apple.py:196"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5111a9effc1dbd99", "level": "note", "message": {"text": "Possibly dead Python function: normalize_agent_name"}, "properties": {"repobilityId": "7989b9ef5fb08b6d", "scanner": "scanner-primary", "fingerprint": "5111a9effc1dbd99", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/whatsapp-analyzer/src/utils/normalizer.py:36"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-71d27f652bacaa96", "level": "note", "message": {"text": "Possibly dead Python function: normalize_phone"}, "properties": {"repobilityId": "e3277ebac0384582", "scanner": "scanner-primary", "fingerprint": "71d27f652bacaa96", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/whatsapp-analyzer/src/utils/normalizer.py:49"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8f1640a74d1278ff", "level": "note", "message": {"text": "Possibly dead Python function: extract_urls"}, "properties": {"repobilityId": "676d4eb4d7c01e55", "scanner": "scanner-primary", "fingerprint": "8f1640a74d1278ff", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/whatsapp-analyzer/src/utils/normalizer.py:96"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f5ac6db75fd18347", "level": "note", "message": {"text": "Possibly dead Python function: extract_phone_numbers"}, "properties": {"repobilityId": "c33cade257381384", "scanner": "scanner-primary", "fingerprint": "f5ac6db75fd18347", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/whatsapp-analyzer/src/utils/normalizer.py:103"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-00afa8c392de5e42", "level": "note", "message": {"text": "Possibly dead Python function: load_csv_full"}, "properties": {"repobilityId": "1313b5ab2876e6c1", "scanner": "scanner-primary", "fingerprint": "00afa8c392de5e42", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/whatsapp-analyzer/src/utils/csv_parser.py:72"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2160ce5d9b84e4fb", "level": "note", "message": {"text": "Possibly dead Python function: mark_duplicates"}, "properties": {"repobilityId": "931f1d81b18df595", "scanner": "scanner-primary", "fingerprint": "2160ce5d9b84e4fb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/whatsapp-analyzer/src/utils/deduplicator.py:20"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-68901e20b8abed17", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/12-ai-assist-live.js:22"}, "properties": {"repobilityId": "c4b19cb407d4260b", "scanner": "scanner-primary", "fingerprint": "68901e20b8abed17", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-376a27d37b1b1920", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/02-login-direct.js:25"}, "properties": {"repobilityId": "8bfa8e0e2ffbd869", "scanner": "scanner-primary", "fingerprint": "376a27d37b1b1920", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cc72feced1a311d7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/16-broadcasts.js:17"}, "properties": {"repobilityId": "48ddf4fdad740123", "scanner": "scanner-primary", "fingerprint": "cc72feced1a311d7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e807dccb918182ea", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/04-inbox-deep.js:23"}, "properties": {"repobilityId": "16bb53aa3af5804e", "scanner": "scanner-primary", "fingerprint": "e807dccb918182ea", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0b62cb2bf481d0cd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/11-inbox-live-v2.js:17"}, "properties": {"repobilityId": "0bfc3577ab507873", "scanner": "scanner-primary", "fingerprint": "0b62cb2bf481d0cd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ab99f29a288709e2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/14-workflow-catalog.js:16"}, "properties": {"repobilityId": "3bba980b6748a858", "scanner": "scanner-primary", "fingerprint": "ab99f29a288709e2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ca269645486c83e5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/09-telegram-connect.js:21"}, "properties": {"repobilityId": "20c8b701da2bbee2", "scanner": "scanner-primary", "fingerprint": "ca269645486c83e5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-33a72ed9dc12c2f6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/19-thorough-sweep.js:21"}, "properties": {"repobilityId": "207db93b5897753d", "scanner": "scanner-primary", "fingerprint": "33a72ed9dc12c2f6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ca289874a71ab43e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/08-settings-via-inbox.js:19"}, "properties": {"repobilityId": "a0a74ac2887782e9", "scanner": "scanner-primary", "fingerprint": "ca289874a71ab43e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dab71dc59c840cf6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/01-login.js:25"}, "properties": {"repobilityId": "606766c20c393e97", "scanner": "scanner-primary", "fingerprint": "dab71dc59c840cf6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-48f7bbfb6d102835", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/03-crawl-sidebar.js:20"}, "properties": {"repobilityId": "23b37b83c63b55b9", "scanner": "scanner-primary", "fingerprint": "48f7bbfb6d102835", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6b85d2be6f124bc0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/06-settings-via-gear.js:19"}, "properties": {"repobilityId": "9470ddc3de6e29d4", "scanner": "scanner-primary", "fingerprint": "6b85d2be6f124bc0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c825b30f4bb821bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/17-broadcasts-create.js:16"}, "properties": {"repobilityId": "41ec3463deee8f18", "scanner": "scanner-primary", "fingerprint": "c825b30f4bb821bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-44fa25ed4ef1b4ed", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/07-settings-layers.js:18"}, "properties": {"repobilityId": "cc884739738713c5", "scanner": "scanner-primary", "fingerprint": "44fa25ed4ef1b4ed", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4503f2224361d537", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/05-settings-harvest.js:24"}, "properties": {"repobilityId": "36c7df9799345c4a", "scanner": "scanner-primary", "fingerprint": "4503f2224361d537", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5005177cd14d8a0c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/15-workflow-full-catalog.js:16"}, "properties": {"repobilityId": "d5c95d5d33ac9fcf", "scanner": "scanner-primary", "fingerprint": "5005177cd14d8a0c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4deebe737191994b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/10-inbox-live.js:19"}, "properties": {"repobilityId": "7c26690dfef692ce", "scanner": "scanner-primary", "fingerprint": "4deebe737191994b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-00b4f96624ead031", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/20-final-gaps.js:15"}, "properties": {"repobilityId": "e43a311d40098d13", "scanner": "scanner-primary", "fingerprint": "00b4f96624ead031", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1641c85917d45b62", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/13-workflows.js:17"}, "properties": {"repobilityId": "a92797647386fd53", "scanner": "scanner-primary", "fingerprint": "1641c85917d45b62", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b8036da2d315c3e0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tracking/competitor-respond-io/18-contacts.js:17"}, "properties": {"repobilityId": "f14a82efefed2cfe", "scanner": "scanner-primary", "fingerprint": "b8036da2d315c3e0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1cba3170ba74d7e7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 SE/src/components/Sidebar.jsx:118"}, "properties": {"repobilityId": "bb2fc43556bda8a5", "scanner": "scanner-primary", "fingerprint": "1cba3170ba74d7e7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ee5b9082d71d7561", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 SE/src/components/TestApiCard.jsx:22"}, "properties": {"repobilityId": "10a62db33b63daf0", "scanner": "scanner-primary", "fingerprint": "ee5b9082d71d7561", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ee8558d64c38eede", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 SE/src/components/TestTab.jsx:161"}, "properties": {"repobilityId": "5c11bd72788d3c2d", "scanner": "scanner-primary", "fingerprint": "ee8558d64c38eede", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7bab913ef838ba55", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 SE/src/pages/HealthCheck.jsx:490"}, "properties": {"repobilityId": "20b2aa43403efe8e", "scanner": "scanner-primary", "fingerprint": "7bab913ef838ba55", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c75a835cffbe59a7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tools/simulator/server.js:50"}, "properties": {"repobilityId": "8434d393ddf6fe6b", "scanner": "scanner-primary", "fingerprint": "c75a835cffbe59a7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-eceabd4385311632", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 ui-mocks/assets/js/app.js:16"}, "properties": {"repobilityId": "ece2633cabb534e3", "scanner": "scanner-primary", "fingerprint": "eceabd4385311632", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fc16642f30865d65", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/Invekto.Backend/wwwroot/app/assets/flow-diff-BepD7kIP.js:22"}, "properties": {"repobilityId": "e30349de5e04192b", "scanner": "scanner-primary", "fingerprint": "fc16642f30865d65", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c1f6bd874872c3ba", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/Invekto.Backend/wwwroot/app/assets/DataImportPage-DE27dBU8.js:13"}, "properties": {"repobilityId": "b9ce2524dbfaa704", "scanner": "scanner-primary", "fingerprint": "c1f6bd874872c3ba", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-33a753497075eb93", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:34"}, "properties": {"repobilityId": "76c9439a43d3c3c8", "scanner": "scanner-primary", "fingerprint": "33a753497075eb93", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d07b0f12ff9b506c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/Invekto.Backend/Dashboard/src/components/KanbanDrawer.tsx:300"}, "properties": {"repobilityId": "9fb562b32a27c363", "scanner": "scanner-primary", "fingerprint": "d07b0f12ff9b506c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-8342d7b8b1bd0272", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/HealthCard.tsx:227"}, "properties": {"repobilityId": "16afeb41063092e3", "scanner": "scanner-primary", "fingerprint": "8342d7b8b1bd0272", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e1a0c1318ac2c3e8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/LogStream.tsx:327"}, "properties": {"repobilityId": "d1fb4a8b3f5af6c9", "scanner": "scanner-primary", "fingerprint": "e1a0c1318ac2c3e8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b4f4879e9bb36986", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/Layout.tsx:187"}, "properties": {"repobilityId": "e88d93004006e3d2", "scanner": "scanner-primary", "fingerprint": "b4f4879e9bb36986", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-aeac1cfb40099cb6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/PlaceholderPicker.tsx:146"}, "properties": {"repobilityId": "bc7019f2ffb0ee41", "scanner": "scanner-primary", "fingerprint": "aeac1cfb40099cb6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d2e3ccb52f16cc25", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/ri/RiRescueAlerts.tsx:46"}, "properties": {"repobilityId": "b71fc10cfb83fa7b", "scanner": "scanner-primary", "fingerprint": "d2e3ccb52f16cc25", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d7f8f64d906c3c48", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/ri/RiOnboardingPanel.tsx:136"}, "properties": {"repobilityId": "0301a4e8bd8b69b0", "scanner": "scanner-primary", "fingerprint": "d7f8f64d906c3c48", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f8ef67758a62af76", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/components/knowledge/DocumentList.tsx:92"}, "properties": {"repobilityId": "ca5811291f7ad45d", "scanner": "scanner-primary", "fingerprint": "f8ef67758a62af76", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-43d7bdbc9e5e2eb0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/LicensesPage.tsx:186"}, "properties": {"repobilityId": "75fb15c804473745", "scanner": "scanner-primary", "fingerprint": "43d7bdbc9e5e2eb0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5ba956db00df76fd", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/Invekto.Backend/Dashboard/src/pages/PaymentPage.tsx:429"}, "properties": {"repobilityId": "04faed5deee678d6", "scanner": "scanner-primary", "fingerprint": "5ba956db00df76fd", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-8d7ecb6c40bc67c9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/FlowMonitorPage.tsx:305"}, "properties": {"repobilityId": "ce09aa5ae2f65cc8", "scanner": "scanner-primary", "fingerprint": "8d7ecb6c40bc67c9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-640352e315f56bd9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/WebChatPage.tsx:258"}, "properties": {"repobilityId": "b5b06ea74d74f4a8", "scanner": "scanner-primary", "fingerprint": "640352e315f56bd9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a6b85dc7806f757b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/MessagesPage.tsx:292"}, "properties": {"repobilityId": "2bdbad0245ef914c", "scanner": "scanner-primary", "fingerprint": "a6b85dc7806f757b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-04c828cbc0c54445", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/ProjectsPage.tsx:1331"}, "properties": {"repobilityId": "6a8c3d77a660e9bd", "scanner": "scanner-primary", "fingerprint": "04c828cbc0c54445", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0668695c38b80a44", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/FlowListPage.tsx:383"}, "properties": {"repobilityId": "89a698fb7149a968", "scanner": "scanner-primary", "fingerprint": "0668695c38b80a44", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4140fde5e460669f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/AiChatPanel.tsx:395"}, "properties": {"repobilityId": "be957dc3f6cc954a", "scanner": "scanner-primary", "fingerprint": "4140fde5e460669f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-42d0d3b6d323ed86", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/FlowLogPanel.tsx:206"}, "properties": {"repobilityId": "444316ec4fe1c518", "scanner": "scanner-primary", "fingerprint": "42d0d3b6d323ed86", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a9e25a893946b97b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/NodePalette.tsx:220"}, "properties": {"repobilityId": "ba112ee4908d1f40", "scanner": "scanner-primary", "fingerprint": "a9e25a893946b97b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-db128e6fe31e7f29", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/nodes/UtilityNoteNode.tsx:29"}, "properties": {"repobilityId": "912424ad4ab40245", "scanner": "scanner-primary", "fingerprint": "db128e6fe31e7f29", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a814f67f2949fc45", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/nodes/ActionHandoffNode.tsx:27"}, "properties": {"repobilityId": "7646bb944e2ea60c", "scanner": "scanner-primary", "fingerprint": "a814f67f2949fc45", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b4b04503b6cdabc3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/nodes/ActionAssignGroupNode.tsx:28"}, "properties": {"repobilityId": "a0dbc1d3841d60ae", "scanner": "scanner-primary", "fingerprint": "b4b04503b6cdabc3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6f6266f7825f2ff3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/nodes/BaseNode.tsx:92"}, "properties": {"repobilityId": "43f858adbb8c5a4e", "scanner": "scanner-primary", "fingerprint": "6f6266f7825f2ff3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f1dcc7ace6f574d6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/components/nodes/MessageMenuNode.tsx:43"}, "properties": {"repobilityId": "cce93e4a47ca90fd", "scanner": "scanner-primary", "fingerprint": "f1dcc7ace6f574d6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-831a3e804c89dfc6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/Invekto.Backend/Dashboard/src/pages/flow-builder/panels/NodePropertyPanel.tsx:766"}, "properties": {"repobilityId": "d430bc12174ac693", "scanner": "scanner-primary", "fingerprint": "831a3e804c89dfc6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f62dbd95f8d1724c", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in SE/src/components/InteractiveROI.jsx:37"}, "properties": {"repobilityId": "17842b4488ac8ab2", "scanner": "scanner-primary", "fingerprint": "f62dbd95f8d1724c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "SE/src/components/InteractiveROI.jsx"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-788a903799f22d43", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in SE/src/lib/scenarioAnalysis.js:170"}, "properties": {"repobilityId": "a0dc261547bfdbbe", "scanner": "scanner-primary", "fingerprint": "788a903799f22d43", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "SE/src/lib/scenarioAnalysis.js"}, "region": {"startLine": 170}}}]}, {"ruleId": "scanner-0e26315b48e830b1", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in SE/src/pages/HealthCheck.jsx:251"}, "properties": {"repobilityId": "63f1f0030a009c9b", "scanner": "scanner-primary", "fingerprint": "0e26315b48e830b1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "SE/src/pages/HealthCheck.jsx"}, "region": {"startLine": 251}}}]}, {"ruleId": "scanner-67948a61bb3d2f92", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in SE/src/pages/Landing.jsx:100"}, "properties": {"repobilityId": "67d3df38f7efcd99", "scanner": "scanner-primary", "fingerprint": "67948a61bb3d2f92", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "SE/src/pages/Landing.jsx"}, "region": {"startLine": 100}}}]}, {"ruleId": "scanner-d0f034d4d21b4afe", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mcp-servers/server-ops/index.mjs:25"}, "properties": {"repobilityId": "a369171d13d8f6fd", "scanner": "scanner-primary", "fingerprint": "d0f034d4d21b4afe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp-servers/server-ops/index.mjs"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-b372e31496667549", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in arch/plans/20260424-dent-paket-c1-faqs-content-bind.json:38"}, "properties": {"repobilityId": "a3718f7a82d589ae", "scanner": "scanner-primary", "fingerprint": "b372e31496667549", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/plans/20260424-dent-paket-c1-faqs-content-bind.json"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-9a755cf94f07c0ba", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in arch/plans/20260427-prod-bypass-bak-remove.json:12"}, "properties": {"repobilityId": "d9a2664b8b9a0c11", "scanner": "scanner-primary", "fingerprint": "9a755cf94f07c0ba", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "arch/plans/20260427-prod-bypass-bak-remove.json"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-cb31f9585b2286f4", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in tools/simulator/server.js:37"}, "properties": {"repobilityId": "b7330e8fea5d8bbb", "scanner": "scanner-primary", "fingerprint": "cb31f9585b2286f4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/simulator/server.js"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-b4971cfa08cf4236", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/app.js:83"}, "properties": {"repobilityId": "df2bdfbca3ab6c85", "scanner": "scanner-primary", "fingerprint": "b4971cfa08cf4236", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/simulator/public/js/app.js"}, "region": {"startLine": 83}}}]}, {"ruleId": "scanner-458ecc7e938e341f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/logs-panel.js:58"}, "properties": {"repobilityId": "76500e65b418c4f3", "scanner": "scanner-primary", "fingerprint": "458ecc7e938e341f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/simulator/public/js/components/logs-panel.js"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-0af75651a096a77c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/errors-panel.js:34"}, "properties": {"repobilityId": "7c34ae7c36b67503", "scanner": "scanner-primary", "fingerprint": "0af75651a096a77c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/simulator/public/js/components/errors-panel.js"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-fda2513be787954f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/health-panel.js:30"}, "properties": {"repobilityId": "8325bf68782c8057", "scanner": "scanner-primary", "fingerprint": "fda2513be787954f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/simulator/public/js/components/health-panel.js"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-3f30d60515907ede", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/jwt-panel.js:29"}, "properties": {"repobilityId": "2982a2bbd8d7f811", "scanner": "scanner-primary", "fingerprint": "3f30d60515907ede", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/simulator/public/js/components/jwt-panel.js"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-8f63df298edacbe5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/callback-panel.js:36"}, "properties": {"repobilityId": "d060371f9956c571", "scanner": "scanner-primary", "fingerprint": "8f63df298edacbe5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/simulator/public/js/components/callback-panel.js"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-0a09216c357887c8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/scenario-panel.js:69"}, "properties": {"repobilityId": "f267ac304e3fa43a", "scanner": "scanner-primary", "fingerprint": "0a09216c357887c8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/simulator/public/js/components/scenario-panel.js"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-c767a6e1061136f9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/traffic-feed.js:56"}, "properties": {"repobilityId": "c40ae5b82abd7461", "scanner": "scanner-primary", "fingerprint": "c767a6e1061136f9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/simulator/public/js/components/traffic-feed.js"}, "region": {"startLine": 56}}}]}, {"ruleId": "scanner-31a6ba22d1fefee3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/webhook-panel.js:27"}, "properties": {"repobilityId": "c8f9ea1ae87fc1bf", "scanner": "scanner-primary", "fingerprint": "31a6ba22d1fefee3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/simulator/public/js/components/webhook-panel.js"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-45964d06041dffaf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tools/simulator/public/js/components/header.js:31"}, "properties": {"repobilityId": "4ad2eab441a4046e", "scanner": "scanner-primary", "fingerprint": "45964d06041dffaf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/simulator/public/js/components/header.js"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-7e32d93df9a6deac", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in tools/ui-tester/service_manager.py:66"}, "properties": {"repobilityId": "0c13b0e43d258642", "scanner": "scanner-primary", "fingerprint": "7e32d93df9a6deac", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/ui-tester/service_manager.py"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-c0b271e0ce640b43", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/Invekto.VoiceRuntime/wwwroot/voice-poc.js:264"}, "properties": {"repobilityId": "54214239ecf16470", "scanner": "scanner-primary", "fingerprint": "c0b271e0ce640b43", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Invekto.VoiceRuntime/wwwroot/voice-poc.js"}, "region": {"startLine": 264}}}]}, {"ruleId": "scanner-61abbaadf56ce747", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/Invekto.Backend/wwwroot/app/assets/flow-diff-BepD7kIP.js:1"}, "properties": {"repobilityId": "e5703d0f46d4d9d5", "scanner": "scanner-primary", "fingerprint": "61abbaadf56ce747", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Invekto.Backend/wwwroot/app/assets/flow-diff-BepD7kIP.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e6ea655c252f2371", "level": "note", "message": {"text": "Insecure pattern 'document_write' in src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:880"}, "properties": {"repobilityId": "146de3497519f7d6", "scanner": "scanner-primary", "fingerprint": "e6ea655c252f2371", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js"}, "region": {"startLine": 880}}}]}, {"ruleId": "scanner-de1829c992b7378f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:38"}, "properties": {"repobilityId": "98df2b1b406ed8a2", "scanner": "scanner-primary", "fingerprint": "de1829c992b7378f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-1f93c841a2d2a484", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52"}, "properties": {"repobilityId": "51e3c58895286353", "scanner": "scanner-primary", "fingerprint": "1f93c841a2d2a484", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-0b2f0213d0898175", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/Invekto.Backend/Dashboard/src/lib/api.ts:821"}, "properties": {"repobilityId": "9c112b0261fcdc1a", "scanner": "scanner-primary", "fingerprint": "0b2f0213d0898175", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Invekto.Backend/Dashboard/src/lib/api.ts"}, "region": {"startLine": 821}}}]}, {"ruleId": "scanner-1965bf99765b8058", "level": "note", "message": {"text": "Insecure pattern 'document_write' in src/Invekto.Backend/Dashboard/src/pages/PaymentPage.tsx:187"}, "properties": {"repobilityId": "ea4c90b1e13d39d8", "scanner": "scanner-primary", "fingerprint": "1965bf99765b8058", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Invekto.Backend/Dashboard/src/pages/PaymentPage.tsx"}, "region": {"startLine": 187}}}]}, {"ruleId": "scanner-cf155835942925fe", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/Invekto.Backend/Dashboard/src/pages/PaymentPage.tsx:429"}, "properties": {"repobilityId": "fe8ea3ff52d67c39", "scanner": "scanner-primary", "fingerprint": "cf155835942925fe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/Invekto.Backend/Dashboard/src/pages/PaymentPage.tsx"}, "region": {"startLine": 429}}}]}, {"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-e48730cd883db2fe", "level": "note", "message": {"text": "Very large file: src/Invekto.Backend/wwwroot/app/assets/flow-templates-C530dZod.js (11034 lines)"}, "properties": {"repobilityId": "1b54cba1ef06bb76", "scanner": "scanner-primary", "fingerprint": "e48730cd883db2fe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d9efe4fef5c632a5", "level": "note", "message": {"text": "Very large file: src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js (880 lines)"}, "properties": {"repobilityId": "fd8bdde7671c3ec3", "scanner": "scanner-primary", "fingerprint": "d9efe4fef5c632a5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b23c627c07dd3f52", "level": "note", "message": {"text": "Very large file: src/Invekto.Backend/Dashboard/src/lib/api.ts (3646 lines)"}, "properties": {"repobilityId": "3da5036833416183", "scanner": "scanner-primary", "fingerprint": "b23c627c07dd3f52", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-934ea0a7877094cd", "level": "note", "message": {"text": "Very large file: src/Invekto.Backend/Dashboard/src/pages/OnboardingGuidePage.tsx (2171 lines)"}, "properties": {"repobilityId": "2009590b93ea575f", "scanner": "scanner-primary", "fingerprint": "934ea0a7877094cd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8683b2b109041622", "level": "note", "message": {"text": "Very large file: src/Invekto.Backend/Dashboard/src/pages/DataImportPage.tsx (1289 lines)"}, "properties": {"repobilityId": "f75a4b9c97820e00", "scanner": "scanner-primary", "fingerprint": "8683b2b109041622", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e5b82619738b156f", "level": "note", "message": {"text": "Very large file: src/Invekto.Backend/Dashboard/src/pages/ProjectsPage.tsx (2297 lines)"}, "properties": {"repobilityId": "55967aaa32698946", "scanner": "scanner-primary", "fingerprint": "e5b82619738b156f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e85b55e6d44cb02e", "level": "note", "message": {"text": "Very large file: src/Invekto.Backend/Dashboard/src/pages/flow-builder/panels/NodePropertyPanel.tsx (2082 lines)"}, "properties": {"repobilityId": "b8aa945b7a43184e", "scanner": "scanner-primary", "fingerprint": "e85b55e6d44cb02e", "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": "be6d782e17ef2cbe", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "b1dffbb39b356e69", "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": "52bb62c4a8776078", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "4058f7c6a828be56", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "931a17d2396db098", "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": "21bc8e3a9eeaf296", "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": "d09efa9d4c7048c5", "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": "659c3720a3648fba", "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": "c7493ac98259476c", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-122f91b7f2906dc4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "properties": {"repobilityId": "a2967269048b6a9d", "scanner": "scanner-primary", "fingerprint": "122f91b7f2906dc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ecb0d2c55ed6875d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.local.json"}, "properties": {"repobilityId": "d8bae33a6d517bf0", "scanner": "scanner-primary", "fingerprint": "ecb0d2c55ed6875d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.local.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ad8925e37a224eb0", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/rollout/SKILL.md"}, "properties": {"repobilityId": "518c2daabaffe214", "scanner": "scanner-primary", "fingerprint": "ad8925e37a224eb0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/rollout/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-602e94a62a6c7917", "level": "none", "message": {"text": "Commented-code block (5 lines) in tracking/competitor-respond-io/12-ai-assist-live.js:1"}, "properties": {"repobilityId": "33046be8d0d2cb22", "scanner": "scanner-primary", "fingerprint": "602e94a62a6c7917", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8c925edf8856db1", "level": "none", "message": {"text": "Commented-code block (5 lines) in SE/src/lib/scenarioAnalysis.js:1"}, "properties": {"repobilityId": "27c2f0893e71754f", "scanner": "scanner-primary", "fingerprint": "a8c925edf8856db1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6511fc546f732ffd", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp-servers/server-ops/index.mjs:3"}, "properties": {"repobilityId": "d8baa1e7d84a6464", "scanner": "scanner-primary", "fingerprint": "6511fc546f732ffd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd91d4eaecac6af8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 tools/simulator/public/js/services/api-client.js:13"}, "properties": {"repobilityId": "33249f14821dabf6", "scanner": "scanner-primary", "fingerprint": "cd91d4eaecac6af8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ae7f2f270df5caac", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/Invekto.VoiceRuntime/wwwroot/voice-poc.js:1"}, "properties": {"repobilityId": "29d05e61a334c565", "scanner": "scanner-primary", "fingerprint": "ae7f2f270df5caac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c2058d4202cd0810", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.VoiceRuntime/wwwroot/voice-poc.js:181"}, "properties": {"repobilityId": "f4ebb2ede8a0b79a", "scanner": "scanner-primary", "fingerprint": "c2058d4202cd0810", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c14373057d3078a0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/wwwroot/app/assets/wizard-api-CYDlvKtl.js:2"}, "properties": {"repobilityId": "3ff5536536975260", "scanner": "scanner-primary", "fingerprint": "c14373057d3078a0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-330c65547d73f04c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:2"}, "properties": {"repobilityId": "89bab6d59d5f398f", "scanner": "scanner-primary", "fingerprint": "330c65547d73f04c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d567ab69f7a44669", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/wwwroot/app/assets/LeadDetailPage-wU9H0Ixi.js:1"}, "properties": {"repobilityId": "69b63833a8eacae8", "scanner": "scanner-primary", "fingerprint": "d567ab69f7a44669", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-abb572790b92b13f", "level": "note", "message": {"text": "Legacy-named symbol `masked_old` in src/Invekto.Backend/Dashboard/src/types/leadIntake.ts:31"}, "properties": {"repobilityId": "25d1f9aa83ce0334", "scanner": "scanner-primary", "fingerprint": "abb572790b92b13f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ef602aeb305ec99d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/stores/ai-chat-store.ts:45"}, "properties": {"repobilityId": "4f2791eb821a4d41", "scanner": "scanner-primary", "fingerprint": "ef602aeb305ec99d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed60361fea5c6b60", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/stores/flow-store.ts:160"}, "properties": {"repobilityId": "e880a64a867ebd1e", "scanner": "scanner-primary", "fingerprint": "ed60361fea5c6b60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5b82b6da13bb746", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/api/photos.ts:6"}, "properties": {"repobilityId": "5a020b23274b8fb6", "scanner": "scanner-primary", "fingerprint": "c5b82b6da13bb746", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33ae531f886197de", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/api/photos.ts:47"}, "properties": {"repobilityId": "057a7aca8eaef593", "scanner": "scanner-primary", "fingerprint": "33ae531f886197de", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b2afc4fafd936cf3", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/constants/tenantFieldMappingReserved.ts:1"}, "properties": {"repobilityId": "cd4fd69d19031f9d", "scanner": "scanner-primary", "fingerprint": "b2afc4fafd936cf3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af478fb978a35d29", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/components/PlaceholderPicker.tsx:11"}, "properties": {"repobilityId": "27f85f8046fd5069", "scanner": "scanner-primary", "fingerprint": "af478fb978a35d29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce3626b5dcb79163", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/components/LeadIntake/FieldMapEditorCard.tsx:1"}, "properties": {"repobilityId": "6ae0d5265cff6cab", "scanner": "scanner-primary", "fingerprint": "ce3626b5dcb79163", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-121c752d3abc6fc0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/components/LeadIntake/ApiKeyManagerCard.tsx:1"}, "properties": {"repobilityId": "e995175fe36528a9", "scanner": "scanner-primary", "fingerprint": "121c752d3abc6fc0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ed1041e6f8d6f98", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/components/FollowupSequence/FollowupStageRow.tsx:6"}, "properties": {"repobilityId": "23a87495882c9554", "scanner": "scanner-primary", "fingerprint": "0ed1041e6f8d6f98", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a738320f1a7fca5c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/components/FieldMapping/EmptyLabelNotice.tsx:1"}, "properties": {"repobilityId": "9f59609fb0d02407", "scanner": "scanner-primary", "fingerprint": "a738320f1a7fca5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a746ed409f12d6da", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/components/FieldMapping/FieldMappingTableRow.tsx:1"}, "properties": {"repobilityId": "2b8adfbeec70f979", "scanner": "scanner-primary", "fingerprint": "a746ed409f12d6da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f3ea504f27ae041", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/lib/api.ts:1189"}, "properties": {"repobilityId": "6080389ca9f076f2", "scanner": "scanner-primary", "fingerprint": "9f3ea504f27ae041", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7e6a1db36e54505", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/lib/api.ts:1023"}, "properties": {"repobilityId": "50be5f3f44f9f8d0", "scanner": "scanner-primary", "fingerprint": "f7e6a1db36e54505", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a7efc3c7360362b1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/lib/wizard-api.ts:98"}, "properties": {"repobilityId": "4914d1aa42aa5622", "scanner": "scanner-primary", "fingerprint": "a7efc3c7360362b1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-905aab63a08b9f4c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/inma/inmaApiClient.ts:46"}, "properties": {"repobilityId": "0e35be1ec1315838", "scanner": "scanner-primary", "fingerprint": "905aab63a08b9f4c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3a175b2571580d2e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/pages/TenantsPage.tsx:88"}, "properties": {"repobilityId": "043ce961aa3ca861", "scanner": "scanner-primary", "fingerprint": "3a175b2571580d2e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-68b43f1a9abb37f6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/pages/DataImportPage.tsx:16"}, "properties": {"repobilityId": "e8912d81b1c1d3fa", "scanner": "scanner-primary", "fingerprint": "68b43f1a9abb37f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31a587243932bea1", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/Invekto.Backend/Dashboard/src/pages/DataManagementPage.tsx:5"}, "properties": {"repobilityId": "fb8394f877d8441e", "scanner": "scanner-primary", "fingerprint": "31a587243932bea1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc8a76b6620c6c48", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/Invekto.Backend/Dashboard/src/pages/VoiceTestPage.tsx:3"}, "properties": {"repobilityId": "c9f9ecf949a1599a", "scanner": "scanner-primary", "fingerprint": "cc8a76b6620c6c48", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39a26edff5b6349b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/pages/DashboardPage.tsx:66"}, "properties": {"repobilityId": "708a77212c24a19f", "scanner": "scanner-primary", "fingerprint": "39a26edff5b6349b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-873d5519c28c614b", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/pages/ExportManagerPage.tsx:15"}, "properties": {"repobilityId": "93f2d0b5d51aa868", "scanner": "scanner-primary", "fingerprint": "873d5519c28c614b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d49fcc8f5b65a5db", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/Invekto.Backend/Dashboard/src/pages/ProjectsPage.tsx:21"}, "properties": {"repobilityId": "994eee0d920e0c93", "scanner": "scanner-primary", "fingerprint": "d49fcc8f5b65a5db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35d9a88750c63fe2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/Invekto.Backend/Dashboard/src/pages/ProjectsPage.tsx:321"}, "properties": {"repobilityId": "33c8d3a44cba8f65", "scanner": "scanner-primary", "fingerprint": "35d9a88750c63fe2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d195e7c47afd38b5", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/pages/settings/LeadIntakeSettingsPage.tsx:1"}, "properties": {"repobilityId": "5eaaf029febd02a1", "scanner": "scanner-primary", "fingerprint": "d195e7c47afd38b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ea2e52cc2874b00", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/pages/settings/FieldMappingSettingsPage.tsx:1"}, "properties": {"repobilityId": "5300ba4b24b2c490", "scanner": "scanner-primary", "fingerprint": "4ea2e52cc2874b00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-841df714caa6cdac", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/Invekto.Backend/Dashboard/src/pages/leads/LeadDetailPage.tsx:5"}, "properties": {"repobilityId": "2e8686507a726697", "scanner": "scanner-primary", "fingerprint": "841df714caa6cdac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55693c49c2a49b13", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/Invekto.Backend/Dashboard/src/pages/leads/components/PhotoTab.tsx:14"}, "properties": {"repobilityId": "40de5db12401f109", "scanner": "scanner-primary", "fingerprint": "55693c49c2a49b13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-52fbff53511cef03", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/pages/flow-builder/panels/NodePropertyPanel.tsx:408"}, "properties": {"repobilityId": "d6f7c42237aa1ba5", "scanner": "scanner-primary", "fingerprint": "52fbff53511cef03", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be4fcd15892aaa55", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/Invekto.Backend/Dashboard/src/hooks/useDynamicFields.ts:89"}, "properties": {"repobilityId": "e96eba6bf4cd094a", "scanner": "scanner-primary", "fingerprint": "be4fcd15892aaa55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-592bd2b2c00aaec9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/Invekto.Backend/Dashboard/src/hooks/useFieldMapping.ts:4"}, "properties": {"repobilityId": "0d545dd8225344f6", "scanner": "scanner-primary", "fingerprint": "592bd2b2c00aaec9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "134b9765435d51f7", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "7ad425c3e7210043", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-325bb11ea842dd34", "level": "warning", "message": {"text": "Frontend route `/scenarios/:id` has no Link/navigate to it \u2014 SE/src/App.jsx"}, "properties": {"repobilityId": "f2ad0d9a6c7d4503", "scanner": "scanner-primary", "fingerprint": "325bb11ea842dd34", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ce85ccd528f50a62", "level": "warning", "message": {"text": "Frontend route `/capabilities` has no Link/navigate to it \u2014 SE/src/App.jsx"}, "properties": {"repobilityId": "b2a67bc014bec72c", "scanner": "scanner-primary", "fingerprint": "ce85ccd528f50a62", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-425b6cfae1b86474", "level": "warning", "message": {"text": "Frontend route `${b}` has no Link/navigate to it \u2014 src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js"}, "properties": {"repobilityId": "b00414b01aebaa4d", "scanner": "scanner-primary", "fingerprint": "425b6cfae1b86474", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-10bc14c02c6afdcc", "level": "warning", "message": {"text": "Frontend route `${b===` has no Link/navigate to it \u2014 src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js"}, "properties": {"repobilityId": "8d00a683141381ed", "scanner": "scanner-primary", "fingerprint": "10bc14c02c6afdcc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-2cef623a3e9c0870", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/inma/auth/exchange (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "dcadabba850767bc", "scanner": "scanner-primary", "fingerprint": "2cef623a3e9c0870", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-16e7140626785641", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/inma/auth/login (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "ff1b72b5ee3ad6ff", "scanner": "scanner-primary", "fingerprint": "16e7140626785641", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f2659db532a40e8f", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/ops/auth/quicklogin (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "f9f9b06b0baa82af", "scanner": "scanner-primary", "fingerprint": "f2659db532a40e8f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6243cbb3dd7ee060", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/inma/auth/mock-login (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "cd5cea36e8e91d41", "scanner": "scanner-primary", "fingerprint": "6243cbb3dd7ee060", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d2d9da8f4757dae4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/inma/welcome (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "826d52aec4d6f4fd", "scanner": "scanner-primary", "fingerprint": "d2d9da8f4757dae4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-96ad0fde91fcaf8d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/inma/auth/refresh (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "60a3f951b1387758", "scanner": "scanner-primary", "fingerprint": "96ad0fde91fcaf8d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bd15fb5e2b6e1538", "level": "error", "message": {"text": "Dangling fetch: GET /ops/hangfire-login (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:577)"}, "properties": {"repobilityId": "5d5d83a5580d6da1", "scanner": "scanner-primary", "fingerprint": "bd15fb5e2b6e1538", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d3731935f7a20823", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/postman (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:577)"}, "properties": {"repobilityId": "e7fd36decde2ffe0", "scanner": "scanner-primary", "fingerprint": "d3731935f7a20823", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-28afe7e23451300c", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/postman (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:644)"}, "properties": {"repobilityId": "6dfdfb9946415e23", "scanner": "scanner-primary", "fingerprint": "28afe7e23451300c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bd2ce3eb892f2d5f", "level": "error", "message": {"text": "Dangling fetch: GET /ops/voice-jwt (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:880)"}, "properties": {"repobilityId": "2ebf93b2985704d3", "scanner": "scanner-primary", "fingerprint": "bd2ce3eb892f2d5f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1c889de4350a2335", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/health (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "60f7ec49b9c3bb91", "scanner": "scanner-primary", "fingerprint": "1c889de4350a2335", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-166e636ababb1809", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/logs/stream?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "36cdb6ccfc1844c3", "scanner": "scanner-primary", "fingerprint": "166e636ababb1809", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7d4eb90cbc9ccef9", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/logs/grouped?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "08195fa9b116d32b", "scanner": "scanner-primary", "fingerprint": "7d4eb90cbc9ccef9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5bbf23204703cbc6", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/logs/context?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "2f4ad3396b3c9769", "scanner": "scanner-primary", "fingerprint": "5bbf23204703cbc6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-58c36553a8fb12a3", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/ops/logs/clear${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "c2fe2461b15b05ed", "scanner": "scanner-primary", "fingerprint": "58c36553a8fb12a3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d2dcbd936524bd33", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/stats/errors?hours=${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "db644e3e3aae7af3", "scanner": "scanner-primary", "fingerprint": "d2dcbd936524bd33", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1f07ac2102f2f360", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/stats/translations (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "6426236e28af4738", "scanner": "scanner-primary", "fingerprint": "1f07ac2102f2f360", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f5e34e3e433ec8a2", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/services/${t}/restart (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "d4901bf5ff78022d", "scanner": "scanner-primary", "fingerprint": "f5e34e3e433ec8a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-99fc0130edd0e907", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/endpoints (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "9b65dc85f8f118b2", "scanner": "scanner-primary", "fingerprint": "99fc0130edd0e907", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c3ad2e4ed38b6da1", "level": "error", "message": {"text": "Dangling fetch: GET /ops (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "0ea5fa09af725b2e", "scanner": "scanner-primary", "fingerprint": "c3ad2e4ed38b6da1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8546b66beb0fde55", "level": "error", "message": {"text": "Dangling fetch: GET /ops/errors (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "87eab8c3147d4e37", "scanner": "scanner-primary", "fingerprint": "8546b66beb0fde55", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-56be37b6b6a4ffb8", "level": "error", "message": {"text": "Dangling fetch: GET /ops/slow (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "e75b60bdd6735a5f", "scanner": "scanner-primary", "fingerprint": "56be37b6b6a4ffb8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-07a18468b6b62021", "level": "error", "message": {"text": "Dangling fetch: GET /ops/search?requestId=${encodeURIComponent(t)} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "77b2eb67829fc442", "scanner": "scanner-primary", "fingerprint": "07a18468b6b62021", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b3f5560213d153ef", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/knowledge/${t}/documents?${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "d2f0f3b326719052", "scanner": "scanner-primary", "fingerprint": "b3f5560213d153ef", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-396d776514981c12", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/knowledge/${t}/documents/website (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "384063b343f191e4", "scanner": "scanner-primary", "fingerprint": "396d776514981c12", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6455fad4c3bde4fd", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/ops/knowledge/${t}/documents/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "8ae917e0ab827492", "scanner": "scanner-primary", "fingerprint": "6455fad4c3bde4fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b07f8f8d27d06bf0", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/knowledge/${t}/faqs?${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "5b22b8f86b32f6e4", "scanner": "scanner-primary", "fingerprint": "b07f8f8d27d06bf0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-09d22b1bb83b94b0", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/knowledge/${t}/faqs (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "755141d07445cbab", "scanner": "scanner-primary", "fingerprint": "09d22b1bb83b94b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4112bc2637f1be6a", "level": "error", "message": {"text": "Dangling fetch: PUT /api/ops/knowledge/${t}/faqs/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "e97066a3ee8cb9cf", "scanner": "scanner-primary", "fingerprint": "4112bc2637f1be6a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-93c99bd6273ecbd5", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/ops/knowledge/${t}/faqs/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "e97066a3ee8cb9cf", "scanner": "scanner-primary", "fingerprint": "93c99bd6273ecbd5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0cdcda0ff8d9cd6f", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/knowledge/${t}/generate-embeddings (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "563a1115950bcfb7", "scanner": "scanner-primary", "fingerprint": "0cdcda0ff8d9cd6f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3f6bc2f5f3c98088", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/tenants (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "4b3ac8c2e5c438be", "scanner": "scanner-primary", "fingerprint": "3f6bc2f5f3c98088", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7c7e785b2cd575f6", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/dashboard/analytics/summary?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "30b0868a3e5aa721", "scanner": "scanner-primary", "fingerprint": "7c7e785b2cd575f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6dfa7e523fa31420", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/automation/summary?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "ed018a912b5c9a8e", "scanner": "scanner-primary", "fingerprint": "6dfa7e523fa31420", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8e39184db56b97f5", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/automation/trends?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "803696201bbf2210", "scanner": "scanner-primary", "fingerprint": "8e39184db56b97f5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-060ad8e258824561", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/automation/intents?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "5419c8de2e5a64b9", "scanner": "scanner-primary", "fingerprint": "060ad8e258824561", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d18e50a384253c46", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/wa/analyses?tenant_id=${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "dfb0a847b3271c39", "scanner": "scanner-primary", "fingerprint": "d18e50a384253c46", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-325c8299ed4ebe9d", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/wa/summary?tenant_id=${t}&analysis_id=${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "dd534e37284bceea", "scanner": "scanner-primary", "fingerprint": "325c8299ed4ebe9d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-36bed682d4c52085", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/wa/agents?tenant_id=${t}&analysis_id=${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "ffc0254652ff3995", "scanner": "scanner-primary", "fingerprint": "36bed682d4c52085", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3e999c9d264882a8", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/wa/trends?tenant_id=${t}&analysis_id=${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "9bee05a25a1d473e", "scanner": "scanner-primary", "fingerprint": "3e999c9d264882a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7aae2aef6c62a1de", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/attribution/summary?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "5f3affcc9bb55e1e", "scanner": "scanner-primary", "fingerprint": "7aae2aef6c62a1de", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b7077005d2af02cd", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/attribution/cost-per-lead?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "640322810422c941", "scanner": "scanner-primary", "fingerprint": "b7077005d2af02cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a53d35dd7d5bf268", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/campaigns?tenant_id=${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "63e450500f6798d6", "scanner": "scanner-primary", "fingerprint": "a53d35dd7d5bf268", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2051d998de84c50b", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/messages?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "495f2d7e1a27a8fe", "scanner": "scanner-primary", "fingerprint": "2051d998de84c50b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-61c50c53190b30a6", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/messages/${t}/story (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "b06f54145732223c", "scanner": "scanner-primary", "fingerprint": "61c50c53190b30a6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bf4446432448e721", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/tenants (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "d57c7b59164d236d", "scanner": "scanner-primary", "fingerprint": "bf4446432448e721", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-252a43284052f4ef", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/kanban/${encodeURIComponent(t)} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "f6cf727d67821bb7", "scanner": "scanner-primary", "fingerprint": "252a43284052f4ef", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4a1c2ee0b30db916", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/ops/kanban/${encodeURIComponent(t)}/cards/${encodeURIComponent(n)} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "85ca7c058b935eb3", "scanner": "scanner-primary", "fingerprint": "4a1c2ee0b30db916", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0eb846e6175ca00a", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/channels?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "5d5c3d9fd45f76e8", "scanner": "scanner-primary", "fingerprint": "0eb846e6175ca00a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1694149a54804277", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/tenants/${t}/impersonate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "3edbdd8073bc0797", "scanner": "scanner-primary", "fingerprint": "1694149a54804277", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3c02ee42d5438f54", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/tenants/${t}/license (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "dd08da7b8573671b", "scanner": "scanner-primary", "fingerprint": "3c02ee42d5438f54", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b5491c28f72d42a4", "level": "error", "message": {"text": "Dangling fetch: PUT /api/ops/tenants/${t}/plan (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "ed5e43a5fe162e66", "scanner": "scanner-primary", "fingerprint": "b5491c28f72d42a4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-345e6bb05b5486ca", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/plans (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "9671073fedf4fed4", "scanner": "scanner-primary", "fingerprint": "345e6bb05b5486ca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-58019a56a661e13a", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/payment/initiate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "bd89e5f95d20a56a", "scanner": "scanner-primary", "fingerprint": "58019a56a661e13a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a172b56bf33f54b5", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/settings/instances (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "fc8b1947ca26783d", "scanner": "scanner-primary", "fingerprint": "a172b56bf33f54b5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c592899a3a222273", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/settings/instances/refresh (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "7e3f47cd587f27ef", "scanner": "scanner-primary", "fingerprint": "c592899a3a222273", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-08ac562ac16c0a51", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/settings/instances/${t}/toggle (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "0ad091242a5fc110", "scanner": "scanner-primary", "fingerprint": "08ac562ac16c0a51", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c8837df339d75e30", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/settings/wa-templates?instanceId=${encodeURIComponent(t)} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "d33d0a0de901ec87", "scanner": "scanner-primary", "fingerprint": "c8837df339d75e30", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7e1dc1a4240a3338", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/settings/working-hours (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "4b50f2f1d9c352e7", "scanner": "scanner-primary", "fingerprint": "7e1dc1a4240a3338", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5598b0b3cc81e327", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/settings/working-hours (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "4b50f2f1d9c352e7", "scanner": "scanner-primary", "fingerprint": "5598b0b3cc81e327", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-67357e14e8f655cb", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/settings/sector (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "ac840d3b2e99cc2e", "scanner": "scanner-primary", "fingerprint": "67357e14e8f655cb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ab537e7befcfe678", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/settings/sector (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "ac840d3b2e99cc2e", "scanner": "scanner-primary", "fingerprint": "ab537e7befcfe678", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-212ef41d67f74278", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/templates/available (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "510dff0ac1d762b4", "scanner": "scanner-primary", "fingerprint": "212ef41d67f74278", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e60c65212e720a08", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/templates/adopt/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "f7e2f9007ac9d8f1", "scanner": "scanner-primary", "fingerprint": "e60c65212e720a08", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3c9349498e3971fa", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/templates/adoptions (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "efe737633b67813f", "scanner": "scanner-primary", "fingerprint": "3c9349498e3971fa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a62df4530fe11e60", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "3355cb6c95c9daa9", "scanner": "scanner-primary", "fingerprint": "a62df4530fe11e60", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-809f00e08a6d447a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${t}/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "b2c5346ab8bf5e9d", "scanner": "scanner-primary", "fingerprint": "809f00e08a6d447a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-210108747f7bcabe", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "3355cb6c95c9daa9", "scanner": "scanner-primary", "fingerprint": "210108747f7bcabe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-97f9ab5e47da5f14", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/flow-builder/flows/${t}/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "b2c5346ab8bf5e9d", "scanner": "scanner-primary", "fingerprint": "97f9ab5e47da5f14", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f3844ab360412713", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/flow-builder/flows/${t}/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "b2c5346ab8bf5e9d", "scanner": "scanner-primary", "fingerprint": "f3844ab360412713", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c2c53aef6d4c6165", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/${t}/${n}/activate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "66b56b018ba81455", "scanner": "scanner-primary", "fingerprint": "c2c53aef6d4c6165", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-67bc2e93e382bf60", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/${t}/${n}/deactivate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "782d596833322787", "scanner": "scanner-primary", "fingerprint": "67bc2e93e382bf60", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3c33aac40e2f3f66", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${t}/${n}/versions (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "4ada27aea3343daa", "scanner": "scanner-primary", "fingerprint": "3c33aac40e2f3f66", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4f2540b4b9569104", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${t}/${n}/versions/${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "2d76b07769457d13", "scanner": "scanner-primary", "fingerprint": "4f2540b4b9569104", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3abe363c2df26d9b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/${t}/${n}/versions/${r}/rollback (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "e7085598c8338ec5", "scanner": "scanner-primary", "fingerprint": "3abe363c2df26d9b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dad09eb47f74a3a6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/validate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "d46765e6f5ef475a", "scanner": "scanner-primary", "fingerprint": "dad09eb47f74a3a6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6ffd338534564549", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/flow-builder/simulation/start (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "9d78f474be957abe", "scanner": "scanner-primary", "fingerprint": "6ffd338534564549", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a562cae40e0051ea", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/flow-builder/simulation/step (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "f65d00ba2317a60f", "scanner": "scanner-primary", "fingerprint": "a562cae40e0051ea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5b6d76f43fdd2ce6", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/flow-builder/simulation/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "a38abd4b92182938", "scanner": "scanner-primary", "fingerprint": "5b6d76f43fdd2ce6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-63ecddb68e1d3e21", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${t}/${n}/executions?${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "2102247e0a254263", "scanner": "scanner-primary", "fingerprint": "63ecddb68e1d3e21", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-056506270507ca67", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${t}/${n}/executions/${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "eefc8dd973eadb5e", "scanner": "scanner-primary", "fingerprint": "056506270507ca67", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8739268839d5792e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/monitor/${t}/executions?${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "5d350cb106042f11", "scanner": "scanner-primary", "fingerprint": "8739268839d5792e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7ea0cd96876851cd", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/instances/available${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "d08c56e4f6c58338", "scanner": "scanner-primary", "fingerprint": "7ea0cd96876851cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e265cc35adc79823", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/customer-feature-groups (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "08303a7cd50e13c5", "scanner": "scanner-primary", "fingerprint": "e265cc35adc79823", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7d27ddffcccf1c0e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/customer-feature-groups/cache-invalidate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "6954dad97f3ef641", "scanner": "scanner-primary", "fingerprint": "7d27ddffcccf1c0e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a6ad9e59906732f8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/tenant/working-hours (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "256126347467da6c", "scanner": "scanner-primary", "fingerprint": "a6ad9e59906732f8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d96e30bb8e4fcc1f", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/templates/catalog?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "ab1a3715108eeea2", "scanner": "scanner-primary", "fingerprint": "d96e30bb8e4fcc1f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-605f9bf91744f03c", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/templates/catalog/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "d418b61e2230f6ce", "scanner": "scanner-primary", "fingerprint": "605f9bf91744f03c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-645f8d081fb800cb", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/templates/catalog/${t}/publish (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "7da2d30ff7c1c8d4", "scanner": "scanner-primary", "fingerprint": "645f8d081fb800cb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9b581ed2774716a4", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/templates/catalog (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "d20c103c9573ee0e", "scanner": "scanner-primary", "fingerprint": "9b581ed2774716a4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8b821c3b538b3fbd", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/templates/catalog/bulk (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "979cecc70a39a5d4", "scanner": "scanner-primary", "fingerprint": "8b821c3b538b3fbd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b065b2490766242c", "level": "error", "message": {"text": "Dangling fetch: PUT /api/ops/templates/catalog/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "d418b61e2230f6ce", "scanner": "scanner-primary", "fingerprint": "b065b2490766242c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c9709c958e307abe", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/ops/templates/catalog/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "d418b61e2230f6ce", "scanner": "scanner-primary", "fingerprint": "c9709c958e307abe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-49532db15ebb4736", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/templates/catalog/${t}/versions (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "cf01899fc2eff6ad", "scanner": "scanner-primary", "fingerprint": "49532db15ebb4736", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8439697f555be9a6", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/templates/suggestions?${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "cde7653b5ad10bf5", "scanner": "scanner-primary", "fingerprint": "8439697f555be9a6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-608d6234816e1b32", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/templates/extract-from-analysis/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "699a891a2bf2b08d", "scanner": "scanner-primary", "fingerprint": "608d6234816e1b32", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-61c0a9bdc024165b", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/templates/suggestions/${t}/review (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "ada33dbd4f3ee41c", "scanner": "scanner-primary", "fingerprint": "61c0a9bdc024165b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c98ee2cd653bf608", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/templates/suggestions/bulk-review (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "fad1eb219ff56718", "scanner": "scanner-primary", "fingerprint": "c98ee2cd653bf608", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-93244f9f14f317df", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/templates/${t}/onboard (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "b29ad3b190d12ba8", "scanner": "scanner-primary", "fingerprint": "93244f9f14f317df", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-41d7556e9f930c5c", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/knowledge/${t}/intents (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "c68b3ad4bdd74361", "scanner": "scanner-primary", "fingerprint": "41d7556e9f930c5c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-69f87321d2c5e206", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/knowledge/${t}/intents (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "c68b3ad4bdd74361", "scanner": "scanner-primary", "fingerprint": "69f87321d2c5e206", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0b710adfb74aca60", "level": "error", "message": {"text": "Dangling fetch: PUT /api/ops/knowledge/${t}/intents/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "b591649086051eb1", "scanner": "scanner-primary", "fingerprint": "0b710adfb74aca60", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-71478d749205d9e0", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/ops/knowledge/${t}/intents/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "b591649086051eb1", "scanner": "scanner-primary", "fingerprint": "71478d749205d9e0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b3976dac26bfb464", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/onboarding/status (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "914e5e28c2e850b4", "scanner": "scanner-primary", "fingerprint": "b3976dac26bfb464", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-177a062d5c2fb02d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/dashboard${i} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "449c8729d236b307", "scanner": "scanner-primary", "fingerprint": "177a062d5c2fb02d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8987f993eef3d412", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/revenue${i} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "d54dca2076bd2956", "scanner": "scanner-primary", "fingerprint": "8987f993eef3d412", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cc61a12ef89ac8f5", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/agents${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "041ba6c57efa8b02", "scanner": "scanner-primary", "fingerprint": "cc61a12ef89ac8f5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bf6238db1fc62d14", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/objections${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "c79a882f5cd2a17a", "scanner": "scanner-primary", "fingerprint": "bf6238db1fc62d14", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-674c2531da2c885d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/response-time${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "73fece4b78e3ad52", "scanner": "scanner-primary", "fingerprint": "674c2531da2c885d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1a299d45f896e1d7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/rescue${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "5d8abf55eae4509c", "scanner": "scanner-primary", "fingerprint": "1a299d45f896e1d7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-afcc8d17fc16edcf", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/quality${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "62f9e679ccd4e4c8", "scanner": "scanner-primary", "fingerprint": "afcc8d17fc16edcf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fa913120fa2901f3", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/demand${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "3227310a2c67afbc", "scanner": "scanner-primary", "fingerprint": "fa913120fa2901f3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2d4c538fb91716c2", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/templates?sector=${encodeURIComponent(n)} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "61e02f573ae84896", "scanner": "scanner-primary", "fingerprint": "2d4c538fb91716c2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0cc918828a1dd7f0", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/wa/${t}/ri/templates/${n}/${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "85adf66d8b4a588b", "scanner": "scanner-primary", "fingerprint": "0cc918828a1dd7f0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eb72420fe01a1813", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/wa/${t}/ri/templates/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "6562ddbbd9fc5a74", "scanner": "scanner-primary", "fingerprint": "eb72420fe01a1813", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0cc918828a1dd7f0", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/wa/${t}/ri/templates/${n}/${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "85adf66d8b4a588b", "scanner": "scanner-primary", "fingerprint": "0cc918828a1dd7f0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-18733c9b6cb3cd3c", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/wa/${t}/ri/templates/${n}/${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "85adf66d8b4a588b", "scanner": "scanner-primary", "fingerprint": "18733c9b6cb3cd3c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7cfe126411e71cf1", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/wa/${t}/ri/feedback (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "4d634eae08634922", "scanner": "scanner-primary", "fingerprint": "7cfe126411e71cf1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-45955241d55a8c23", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/benchmarks?sector=${encodeURIComponent(n)} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "9abe532f3d74b323", "scanner": "scanner-primary", "fingerprint": "45955241d55a8c23", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-079c7bc525972dac", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${t}/ri/onboarding${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "51e620c773cc9d86", "scanner": "scanner-primary", "fingerprint": "079c7bc525972dac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b136bf66d44d1840", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/rescue/stats (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "dfaee694ca94f87e", "scanner": "scanner-primary", "fingerprint": "b136bf66d44d1840", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9d3e819db022c83e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/rescue/risks${a} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "a0510cedafa6ff03", "scanner": "scanner-primary", "fingerprint": "9d3e819db022c83e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-30b49fd4a208f787", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/rescue/risks/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "11e1ad8e60ae10f7", "scanner": "scanner-primary", "fingerprint": "30b49fd4a208f787", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c9dc3d6e02cea77f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/rescue/templates${r} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "8036e044dc7b8455", "scanner": "scanner-primary", "fingerprint": "c9dc3d6e02cea77f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7ae44b468e2686b7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/rescue/templates (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "fa0b37506084771c", "scanner": "scanner-primary", "fingerprint": "7ae44b468e2686b7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b5082e66cf72ccf0", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/rescue/templates/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "785143ef2139bf82", "scanner": "scanner-primary", "fingerprint": "b5082e66cf72ccf0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f309cd647ab81442", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/rescue/templates/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "785143ef2139bf82", "scanner": "scanner-primary", "fingerprint": "f309cd647ab81442", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-40e026897a5bf399", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/webchat/conversations${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "7cdd67225eb39162", "scanner": "scanner-primary", "fingerprint": "40e026897a5bf399", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-df5ebdc81f7f607c", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/webchat/conversations/${t}/messages (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "511700838d96d959", "scanner": "scanner-primary", "fingerprint": "df5ebdc81f7f607c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6e5b269f8e3df545", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/webchat/conversations/${t}/messages (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "511700838d96d959", "scanner": "scanner-primary", "fingerprint": "6e5b269f8e3df545", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0099bed5ac6fead3", "level": "error", "message": {"text": "Dangling fetch: PUT /api/ops/webchat/conversations/${t}/close (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "3abb579c1b43e8aa", "scanner": "scanner-primary", "fingerprint": "0099bed5ac6fead3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6042a6ebed69e9ef", "level": "error", "message": {"text": "Dangling fetch: PUT /api/ops/webchat/conversations/${t}/route-ai (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "71f8dfd8e4bedc87", "scanner": "scanner-primary", "fingerprint": "6042a6ebed69e9ef", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1570e45de7e23761", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/webchat/conversations/${t}/visitor (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "6474960d80699fcf", "scanner": "scanner-primary", "fingerprint": "1570e45de7e23761", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5a700cd4928b944d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant/landing/settings (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "5abf9f6de9b2ec8c", "scanner": "scanner-primary", "fingerprint": "5a700cd4928b944d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-afadc1fa3b37499b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/tenant/landing/apikey/rotate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "88a130c4a4756a0a", "scanner": "scanner-primary", "fingerprint": "afadc1fa3b37499b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2fba0d23d2df1dcd", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/tenant/landing/apikey/revoke (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "be278165fc616227", "scanner": "scanner-primary", "fingerprint": "2fba0d23d2df1dcd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-912737e1ba647088", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/tenant/landing/fieldmap (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "b909c100b6302c46", "scanner": "scanner-primary", "fingerprint": "912737e1ba647088", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9cee5ec52bd007b7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/tenant/landing/dry-run (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "846ee01b2238bc59", "scanner": "scanner-primary", "fingerprint": "9cee5ec52bd007b7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bdc6d482228b08e1", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant/landing/audit${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "b076a1d0cd3cdd0d", "scanner": "scanner-primary", "fingerprint": "bdc6d482228b08e1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3e3ae21cca933a79", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/dynamic-fields (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "2ce55ba8c768c561", "scanner": "scanner-primary", "fingerprint": "3e3ae21cca933a79", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cfc837e7a89e1f30", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/dynamic-fields/cache-invalidate (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "3e6d3aa354fe31db", "scanner": "scanner-primary", "fingerprint": "cfc837e7a89e1f30", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-44f3d1573eff2edc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant-settings/field-mapping (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "5ab661d5abee8ce8", "scanner": "scanner-primary", "fingerprint": "44f3d1573eff2edc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e7d5224d13be957e", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/field-mapping (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "5ab661d5abee8ce8", "scanner": "scanner-primary", "fingerprint": "e7d5224d13be957e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4a18bd1286257924", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant-settings/followup-sequence (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "1e38306fc4f874de", "scanner": "scanner-primary", "fingerprint": "4a18bd1286257924", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c564252044f4fa46", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/followup-sequence (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "1e38306fc4f874de", "scanner": "scanner-primary", "fingerprint": "c564252044f4fa46", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d60eb2220d21d829", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant/followup/runs (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "906f83b0a6626daf", "scanner": "scanner-primary", "fingerprint": "d60eb2220d21d829", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-19e1cc865ccde411", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant-settings/campaign-config (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "803d6168db24472c", "scanner": "scanner-primary", "fingerprint": "19e1cc865ccde411", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0ee4ef25b1c7dd76", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/campaign-config (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "803d6168db24472c", "scanner": "scanner-primary", "fingerprint": "0ee4ef25b1c7dd76", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c308d443e7b9d8e1", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant-settings/clinic-metadata (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "80421d2309eb2d4c", "scanner": "scanner-primary", "fingerprint": "c308d443e7b9d8e1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-616ac2b1b7f43cb7", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/clinic-metadata (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "80421d2309eb2d4c", "scanner": "scanner-primary", "fingerprint": "616ac2b1b7f43cb7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-56725238caecbfea", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "18fd44c61e997146", "scanner": "scanner-primary", "fingerprint": "56725238caecbfea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9cf6d38187b7b6d8", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/meta-leadgen (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "18fd44c61e997146", "scanner": "scanner-primary", "fingerprint": "9cf6d38187b7b6d8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ebb2f78e8c680bc8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/tenant-settings/meta-leadgen/rotate-verify-token (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "b8675b5ab60597dc", "scanner": "scanner-primary", "fingerprint": "ebb2f78e8c680bc8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1439f3fffde4105c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen/discover-forms (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "fdbf609e2d7b4d0b", "scanner": "scanner-primary", "fingerprint": "1439f3fffde4105c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8b0878aaecdbdc8a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen/events?limit=${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "95a1ae8d3ad4f8fb", "scanner": "scanner-primary", "fingerprint": "8b0878aaecdbdc8a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f3570ab6bc301e2c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/templates${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "9b4da3a0b8b2b427", "scanner": "scanner-primary", "fingerprint": "f3570ab6bc301e2c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-238d6a4404ef5c62", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/data-lists (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "6ab82be3623fa170", "scanner": "scanner-primary", "fingerprint": "238d6a4404ef5c62", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-248c6ad623729952", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/data-lists (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "6ab82be3623fa170", "scanner": "scanner-primary", "fingerprint": "248c6ad623729952", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-72fe2f629b081180", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/outbound/data-lists/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "90e0a9974da8e3b5", "scanner": "scanner-primary", "fingerprint": "72fe2f629b081180", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-366649385120e337", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/outbound/data-lists/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "90e0a9974da8e3b5", "scanner": "scanner-primary", "fingerprint": "366649385120e337", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1ba19f4b141e0158", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/data-lists/records/exists (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "d08ae541dcc4e08f", "scanner": "scanner-primary", "fingerprint": "1ba19f4b141e0158", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7be38f490f2aeacd", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/data-lists/import (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "aac36623bb26c021", "scanner": "scanner-primary", "fingerprint": "7be38f490f2aeacd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b4d823d29780b5f0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/data-lists/${t}/records?${r.toString()} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "a68171b09b7ec60b", "scanner": "scanner-primary", "fingerprint": "b4d823d29780b5f0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-48ce4711c6950bcf", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/data-lists/${t}/records (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "3bf4720c8873b0d5", "scanner": "scanner-primary", "fingerprint": "48ce4711c6950bcf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e98c39d8e8c83604", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/outbound/data-lists/${t}/records/${n} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "fc27c7c4efc51727", "scanner": "scanner-primary", "fingerprint": "e98c39d8e8c83604", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c299961eb9daa858", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/bulk-send/preview-from-list (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "02063343bc057d32", "scanner": "scanner-primary", "fingerprint": "c299961eb9daa858", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7011703c240daea0", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/bulk-send/confirm (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "88e97f11cfd1e8b5", "scanner": "scanner-primary", "fingerprint": "7011703c240daea0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4dbdc96acb5ece1d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/bulk-send/${encodeURIComponent(t)}/status (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "e3548e48edafeb5f", "scanner": "scanner-primary", "fingerprint": "4dbdc96acb5ece1d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4c99c4cf0508c4cb", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/projects/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "aa8e524b6c4e503d", "scanner": "scanner-primary", "fingerprint": "4c99c4cf0508c4cb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a37fa2be0af93da3", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "4de15cd3121aa3af", "scanner": "scanner-primary", "fingerprint": "a37fa2be0af93da3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a010817496c4951d", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/outbound/projects/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "aa8e524b6c4e503d", "scanner": "scanner-primary", "fingerprint": "a010817496c4951d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7df1794a37bf59da", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/outbound/projects/${t} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "aa8e524b6c4e503d", "scanner": "scanner-primary", "fingerprint": "7df1794a37bf59da", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-417bbc75bb012af6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${t}/send/preview (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "41716a7a9055641d", "scanner": "scanner-primary", "fingerprint": "417bbc75bb012af6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5fa572993b592433", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${t}/send/confirm (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "62e0396c200b5dd3", "scanner": "scanner-primary", "fingerprint": "5fa572993b592433", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-72cd68b8faf680ad", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/projects/${t}/send/status (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "e23e8050ddf100c1", "scanner": "scanner-primary", "fingerprint": "72cd68b8faf680ad", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4f6ccffdfc387b7f", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${t}/send/pause (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "1ee4c57fd3454c32", "scanner": "scanner-primary", "fingerprint": "4f6ccffdfc387b7f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5cb3917398da4e37", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${t}/send/resume (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "5279b1c0b8b85950", "scanner": "scanner-primary", "fingerprint": "5cb3917398da4e37", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-400c43c6d3cd6256", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${t}/send/cancel (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "c489b98e7a93e070", "scanner": "scanner-primary", "fingerprint": "400c43c6d3cd6256", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-16cc906167407cbc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/projects/${t}/report/runs (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "ddbe86013715836c", "scanner": "scanner-primary", "fingerprint": "16cc906167407cbc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-07e2af0d98a89768", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/projects/${t}/report/recipients?${r.toString()} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "95ffb950fa079eab", "scanner": "scanner-primary", "fingerprint": "07e2af0d98a89768", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-22c998c02d3aa0ae", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${t}/report/resend (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "9098744d51051c40", "scanner": "scanner-primary", "fingerprint": "22c998c02d3aa0ae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6bd0bccd423cd5c0", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${t}/report/resend-bulk (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "508412d0b3e67a24", "scanner": "scanner-primary", "fingerprint": "6bd0bccd423cd5c0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6452f5f54c13e01d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${t}/report/refresh-status (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "95a99f4a2434e323", "scanner": "scanner-primary", "fingerprint": "6452f5f54c13e01d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-418d7cb635c5addd", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/send/test (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "de1ebba2dbf79447", "scanner": "scanner-primary", "fingerprint": "418d7cb635c5addd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aae4acde955f5027", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/broadcast/${encodeURIComponent(t)}/status (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "582643f52a078b7a", "scanner": "scanner-primary", "fingerprint": "aae4acde955f5027", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d35b7a3a106a6e7c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/exports/send-jobs (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "b5cb4009a665dcab", "scanner": "scanner-primary", "fingerprint": "d35b7a3a106a6e7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fecca23751d9b40c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/exports/send-job/${t}/report-data?for=pdf (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "c20131f27c27cdbe", "scanner": "scanner-primary", "fingerprint": "fecca23751d9b40c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-52381b5eb9ba536a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/exports/filter-options (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "b32676bf4cd10a15", "scanner": "scanner-primary", "fingerprint": "52381b5eb9ba536a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-082f0d35ea74db34", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/exports/recipients/count${this.exportFilterQuery(t)} (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "6980ecb09abf12df", "scanner": "scanner-primary", "fingerprint": "082f0d35ea74db34", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a2700aef77d2150f", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/exports/recipients/create-list (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "80759cd0f8b26613", "scanner": "scanner-primary", "fingerprint": "a2700aef77d2150f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0f8058507b2f9e81", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/exports/history (src/Invekto.Backend/wwwroot/app/assets/index-BYKMIDLi.js:52)"}, "properties": {"repobilityId": "45bcd94e55f0f0ca", "scanner": "scanner-primary", "fingerprint": "0f8058507b2f9e81", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-71019d753656e71f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/leads/${s}/photos (src/Invekto.Backend/wwwroot/app/assets/LeadDetailPage-wU9H0Ixi.js:1)"}, "properties": {"repobilityId": "7546cc350ebc2911", "scanner": "scanner-primary", "fingerprint": "71019d753656e71f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a9515c8c1cb53059", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/leads/${s}/photos/request (src/Invekto.Backend/wwwroot/app/assets/LeadDetailPage-wU9H0Ixi.js:1)"}, "properties": {"repobilityId": "220e4f598aff2021", "scanner": "scanner-primary", "fingerprint": "a9515c8c1cb53059", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1c1122ddd9e892cd", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/leads/${leadId}/photos (src/Invekto.Backend/Dashboard/src/api/photos.ts:47)"}, "properties": {"repobilityId": "8e56bc45878b21a8", "scanner": "scanner-primary", "fingerprint": "1c1122ddd9e892cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-77020f4c48760777", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/leads/${leadId}/photos/request (src/Invekto.Backend/Dashboard/src/api/photos.ts:74)"}, "properties": {"repobilityId": "f521b9e10faabb06", "scanner": "scanner-primary", "fingerprint": "77020f4c48760777", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-61c7c584de0a0f08", "level": "error", "message": {"text": "Dangling fetch: GET /ops/hangfire-login (src/Invekto.Backend/Dashboard/src/components/Layout.tsx:167)"}, "properties": {"repobilityId": "df1ea503da6437c8", "scanner": "scanner-primary", "fingerprint": "61c7c584de0a0f08", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9894980301303b9e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/inma/auth/exchange (src/Invekto.Backend/Dashboard/src/lib/api.ts:1023)"}, "properties": {"repobilityId": "83e9e5f00c6c57df", "scanner": "scanner-primary", "fingerprint": "9894980301303b9e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-83d6c28a12352b9a", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/inma/auth/login (src/Invekto.Backend/Dashboard/src/lib/api.ts:1051)"}, "properties": {"repobilityId": "f275dc29afa65395", "scanner": "scanner-primary", "fingerprint": "83d6c28a12352b9a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-540f5a95e3432d03", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/ops/auth/quicklogin (src/Invekto.Backend/Dashboard/src/lib/api.ts:1064)"}, "properties": {"repobilityId": "072c5d32967bfd07", "scanner": "scanner-primary", "fingerprint": "540f5a95e3432d03", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-57a6f90964826fb9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/inma/auth/mock-login (src/Invekto.Backend/Dashboard/src/lib/api.ts:1076)"}, "properties": {"repobilityId": "cbf6e294f1a91d1d", "scanner": "scanner-primary", "fingerprint": "57a6f90964826fb9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-249ab81271aac167", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/inma/welcome (src/Invekto.Backend/Dashboard/src/lib/api.ts:1093)"}, "properties": {"repobilityId": "cacf29d5a6d75329", "scanner": "scanner-primary", "fingerprint": "249ab81271aac167", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1326f44b1f181f3e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/inma/auth/refresh (src/Invekto.Backend/Dashboard/src/lib/api.ts:1124)"}, "properties": {"repobilityId": "3a17a12c2a10318d", "scanner": "scanner-primary", "fingerprint": "1326f44b1f181f3e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3cf78b0b023d00a8", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/health (src/Invekto.Backend/Dashboard/src/lib/api.ts:1297)"}, "properties": {"repobilityId": "33ea10b2e89a097a", "scanner": "scanner-primary", "fingerprint": "3cf78b0b023d00a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e88815255ed6aaf0", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/logs/stream?${searchParams} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1317)"}, "properties": {"repobilityId": "91b53c7c4617a3fc", "scanner": "scanner-primary", "fingerprint": "e88815255ed6aaf0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0ea7f256bc8df0fd", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/logs/grouped?${searchParams} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1336)"}, "properties": {"repobilityId": "51008f4a14b42e7a", "scanner": "scanner-primary", "fingerprint": "0ea7f256bc8df0fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-84e6ed38eb610873", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/logs/context?${searchParams} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1345)"}, "properties": {"repobilityId": "f13045f9777473ab", "scanner": "scanner-primary", "fingerprint": "84e6ed38eb610873", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-84fb34bd8d6cf8ab", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/ops/logs/clear${params} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1351)"}, "properties": {"repobilityId": "9c01f6ca3f15b62f", "scanner": "scanner-primary", "fingerprint": "84fb34bd8d6cf8ab", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9fd51309c82addd9", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/stats/errors?hours=${hours} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1356)"}, "properties": {"repobilityId": "fc49a1cb64cb833a", "scanner": "scanner-primary", "fingerprint": "9fd51309c82addd9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c98650d8b15dbda0", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/stats/translations (src/Invekto.Backend/Dashboard/src/lib/api.ts:1360)"}, "properties": {"repobilityId": "e648dd4bb691d9c5", "scanner": "scanner-primary", "fingerprint": "c98650d8b15dbda0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-760f2060745f96ce", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/services/${serviceName}/restart (src/Invekto.Backend/Dashboard/src/lib/api.ts:1365)"}, "properties": {"repobilityId": "88ef540f353f5388", "scanner": "scanner-primary", "fingerprint": "760f2060745f96ce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-254376dbe04c91d3", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/endpoints (src/Invekto.Backend/Dashboard/src/lib/api.ts:1372)"}, "properties": {"repobilityId": "a496ad1083b7e618", "scanner": "scanner-primary", "fingerprint": "254376dbe04c91d3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-34eeeb748f5c0966", "level": "error", "message": {"text": "Dangling fetch: GET /ops (src/Invekto.Backend/Dashboard/src/lib/api.ts:1377)"}, "properties": {"repobilityId": "eb79fb645747d56a", "scanner": "scanner-primary", "fingerprint": "34eeeb748f5c0966", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-769c80d60be8c3ed", "level": "error", "message": {"text": "Dangling fetch: GET /ops/errors (src/Invekto.Backend/Dashboard/src/lib/api.ts:1381)"}, "properties": {"repobilityId": "3488ba0f0be17b9d", "scanner": "scanner-primary", "fingerprint": "769c80d60be8c3ed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5db53030d6252681", "level": "error", "message": {"text": "Dangling fetch: GET /ops/slow (src/Invekto.Backend/Dashboard/src/lib/api.ts:1385)"}, "properties": {"repobilityId": "79343adeaa0f560c", "scanner": "scanner-primary", "fingerprint": "5db53030d6252681", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3b2b8977fe3a9c3b", "level": "error", "message": {"text": "Dangling fetch: GET /ops/search?requestId=${encodeURIComponent(requestId)} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1389)"}, "properties": {"repobilityId": "0c235e655852f1bf", "scanner": "scanner-primary", "fingerprint": "3b2b8977fe3a9c3b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aa7068de57f2e492", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/knowledge/${tenantId}/documents?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1398)"}, "properties": {"repobilityId": "66690c18ad170354", "scanner": "scanner-primary", "fingerprint": "aa7068de57f2e492", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2438c43ed336de94", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/knowledge/${tenantId}/documents/website (src/Invekto.Backend/Dashboard/src/lib/api.ts:1408)"}, "properties": {"repobilityId": "0c3ca263ebdd8b51", "scanner": "scanner-primary", "fingerprint": "2438c43ed336de94", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6663dc7f996a3ded", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/ops/knowledge/${tenantId}/documents/${docId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1416)"}, "properties": {"repobilityId": "3fb76e44363d1c37", "scanner": "scanner-primary", "fingerprint": "6663dc7f996a3ded", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6a469486c470d749", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/knowledge/${tenantId}/faqs?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1426)"}, "properties": {"repobilityId": "6e16c37ea83991a2", "scanner": "scanner-primary", "fingerprint": "6a469486c470d749", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-127944b11467e0c6", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/knowledge/${tenantId}/faqs (src/Invekto.Backend/Dashboard/src/lib/api.ts:1431)"}, "properties": {"repobilityId": "932173a16ccc791e", "scanner": "scanner-primary", "fingerprint": "127944b11467e0c6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c8473353cf60e7bc", "level": "error", "message": {"text": "Dangling fetch: PUT /api/ops/knowledge/${tenantId}/faqs/${faqId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1437)"}, "properties": {"repobilityId": "86620a6e72ee2534", "scanner": "scanner-primary", "fingerprint": "c8473353cf60e7bc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9e0c66873410f442", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/ops/knowledge/${tenantId}/faqs/${faqId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1443)"}, "properties": {"repobilityId": "63b041bb247b6ac5", "scanner": "scanner-primary", "fingerprint": "9e0c66873410f442", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8440c03b62856302", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/knowledge/${tenantId}/generate-embeddings (src/Invekto.Backend/Dashboard/src/lib/api.ts:1448)"}, "properties": {"repobilityId": "5247b1781bc537c2", "scanner": "scanner-primary", "fingerprint": "8440c03b62856302", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9825b98b445dede0", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/tenants (src/Invekto.Backend/Dashboard/src/lib/api.ts:1454)"}, "properties": {"repobilityId": "91132eec9f99c7c1", "scanner": "scanner-primary", "fingerprint": "9825b98b445dede0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6f8f2b04479697dc", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/dashboard/analytics/summary?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1464)"}, "properties": {"repobilityId": "641bd21a62f3a0b9", "scanner": "scanner-primary", "fingerprint": "6f8f2b04479697dc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8aeea0f05a25f981", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/automation/summary?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1467)"}, "properties": {"repobilityId": "c321f72e737c26cd", "scanner": "scanner-primary", "fingerprint": "8aeea0f05a25f981", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f7109322b780c13f", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/automation/trends?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1475)"}, "properties": {"repobilityId": "ffa2a719516920c0", "scanner": "scanner-primary", "fingerprint": "f7109322b780c13f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-636e49ba59fb301d", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/automation/intents?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1483)"}, "properties": {"repobilityId": "f046eb357a581221", "scanner": "scanner-primary", "fingerprint": "636e49ba59fb301d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e8b1c90366545118", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/wa/analyses?tenant_id=${tenantId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1487)"}, "properties": {"repobilityId": "4f69e07131df6bfa", "scanner": "scanner-primary", "fingerprint": "e8b1c90366545118", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-10a7e58a6c2556cf", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/wa/summary?tenant_id=${tenantId}&analysis_id=${analysisId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1491)"}, "properties": {"repobilityId": "598dd63988394ae7", "scanner": "scanner-primary", "fingerprint": "10a7e58a6c2556cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f73add2dde179c39", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/wa/agents?tenant_id=${tenantId}&analysis_id=${analysisId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1495)"}, "properties": {"repobilityId": "cea28afb833c56ff", "scanner": "scanner-primary", "fingerprint": "f73add2dde179c39", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b00e375b7804f5d6", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/wa/trends?tenant_id=${tenantId}&analysis_id=${analysisId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1499)"}, "properties": {"repobilityId": "a36685aff0d44f19", "scanner": "scanner-primary", "fingerprint": "b00e375b7804f5d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-92830af61507e261", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/attribution/summary?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1508)"}, "properties": {"repobilityId": "db9ba329e0bb6ad8", "scanner": "scanner-primary", "fingerprint": "92830af61507e261", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fd93f60d322329fc", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/attribution/cost-per-lead?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1516)"}, "properties": {"repobilityId": "3519ab519dabb4aa", "scanner": "scanner-primary", "fingerprint": "fd93f60d322329fc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f2fd5edb271ac715", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/analytics/campaigns?tenant_id=${tenantId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1520)"}, "properties": {"repobilityId": "1ecd09d5beee28d2", "scanner": "scanner-primary", "fingerprint": "f2fd5edb271ac715", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-024e044eedba7754", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/messages?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1543)"}, "properties": {"repobilityId": "39331ce90106132c", "scanner": "scanner-primary", "fingerprint": "024e044eedba7754", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-92166717b6647ef0", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/messages/${messageId}/story (src/Invekto.Backend/Dashboard/src/lib/api.ts:1548)"}, "properties": {"repobilityId": "7e8832ce1113f4e1", "scanner": "scanner-primary", "fingerprint": "92166717b6647ef0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e0e2ad14042f7799", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/tenants (src/Invekto.Backend/Dashboard/src/lib/api.ts:1553)"}, "properties": {"repobilityId": "cb176509ff938c34", "scanner": "scanner-primary", "fingerprint": "e0e2ad14042f7799", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-27be929a1bc72ea5", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/kanban/${encodeURIComponent(boardKey)} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1559)"}, "properties": {"repobilityId": "40bcaff84f845350", "scanner": "scanner-primary", "fingerprint": "27be929a1bc72ea5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9d478637df1fcf08", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/ops/kanban/${encodeURIComponent(boardKey)}/cards/${encodeURIComponent(cardSlug)} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1569)"}, "properties": {"repobilityId": "2adc450937a0a28f", "scanner": "scanner-primary", "fingerprint": "9d478637df1fcf08", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8fb14e40de0be47c", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/tenants/${tenantId}/license (src/Invekto.Backend/Dashboard/src/lib/api.ts:1595)"}, "properties": {"repobilityId": "824f53a1dc2b34ff", "scanner": "scanner-primary", "fingerprint": "8fb14e40de0be47c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6d880fa7c21de638", "level": "error", "message": {"text": "Dangling fetch: PUT /api/ops/tenants/${tenantId}/plan (src/Invekto.Backend/Dashboard/src/lib/api.ts:1603)"}, "properties": {"repobilityId": "b5d95185313ae342", "scanner": "scanner-primary", "fingerprint": "6d880fa7c21de638", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c8f7cf7a9a028ebf", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/plans (src/Invekto.Backend/Dashboard/src/lib/api.ts:1612)"}, "properties": {"repobilityId": "4f3ca98dfa507d68", "scanner": "scanner-primary", "fingerprint": "c8f7cf7a9a028ebf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-11737af492cce50a", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/payment/initiate (src/Invekto.Backend/Dashboard/src/lib/api.ts:1616)"}, "properties": {"repobilityId": "a48a8b6aece8ce93", "scanner": "scanner-primary", "fingerprint": "11737af492cce50a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e83cc027983d1ea0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/settings/instances (src/Invekto.Backend/Dashboard/src/lib/api.ts:1625)"}, "properties": {"repobilityId": "becbd5b4f0949aa3", "scanner": "scanner-primary", "fingerprint": "e83cc027983d1ea0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-77f9fffc88c2012e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/settings/instances/refresh (src/Invekto.Backend/Dashboard/src/lib/api.ts:1629)"}, "properties": {"repobilityId": "cdd190d0edbf9a41", "scanner": "scanner-primary", "fingerprint": "77f9fffc88c2012e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a9517b83ac98430c", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/settings/instances/${instanceId}/toggle (src/Invekto.Backend/Dashboard/src/lib/api.ts:1635)"}, "properties": {"repobilityId": "1e25427a5184ea6c", "scanner": "scanner-primary", "fingerprint": "a9517b83ac98430c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9b9ec8700a271674", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/settings/wa-templates?instanceId=${encodeURIComponent(instanceId)} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1645)"}, "properties": {"repobilityId": "040c80f1b3a63f15", "scanner": "scanner-primary", "fingerprint": "9b9ec8700a271674", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c3e284ecb601c205", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/settings/working-hours (src/Invekto.Backend/Dashboard/src/lib/api.ts:1651)"}, "properties": {"repobilityId": "e029ca2090a31b18", "scanner": "scanner-primary", "fingerprint": "c3e284ecb601c205", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0e937601d4705376", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/settings/working-hours (src/Invekto.Backend/Dashboard/src/lib/api.ts:1655)"}, "properties": {"repobilityId": "fab83c51979206aa", "scanner": "scanner-primary", "fingerprint": "0e937601d4705376", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3678df3faa05124c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/settings/sector (src/Invekto.Backend/Dashboard/src/lib/api.ts:1663)"}, "properties": {"repobilityId": "5b0d5877c02c0d9b", "scanner": "scanner-primary", "fingerprint": "3678df3faa05124c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2de70f2c19a54ffc", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/settings/sector (src/Invekto.Backend/Dashboard/src/lib/api.ts:1667)"}, "properties": {"repobilityId": "98216076044f65f7", "scanner": "scanner-primary", "fingerprint": "2de70f2c19a54ffc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c5e4e8205ca78ab4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/templates/available (src/Invekto.Backend/Dashboard/src/lib/api.ts:1675)"}, "properties": {"repobilityId": "0f9f72622339eecc", "scanner": "scanner-primary", "fingerprint": "c5e4e8205ca78ab4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-489716c83a9bc994", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/templates/adopt/${templateId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1679)"}, "properties": {"repobilityId": "de8347ed2401f29d", "scanner": "scanner-primary", "fingerprint": "489716c83a9bc994", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0ff72e218cdd9438", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/templates/adoptions (src/Invekto.Backend/Dashboard/src/lib/api.ts:1684)"}, "properties": {"repobilityId": "3dbf8737d618155c", "scanner": "scanner-primary", "fingerprint": "0ff72e218cdd9438", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0bc11966361e03d9", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1690)"}, "properties": {"repobilityId": "84d38d7ada9806f4", "scanner": "scanner-primary", "fingerprint": "0bc11966361e03d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4af92d833d97cb94", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId}/${flowId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1694)"}, "properties": {"repobilityId": "99d121ada50a3f93", "scanner": "scanner-primary", "fingerprint": "4af92d833d97cb94", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-91e2e0afd9c4f4ea", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/${tenantId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1698)"}, "properties": {"repobilityId": "74d7974761dbd96b", "scanner": "scanner-primary", "fingerprint": "91e2e0afd9c4f4ea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0eaea27e378e2759", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/flow-builder/flows/${tenantId}/${flowId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1704)"}, "properties": {"repobilityId": "897524f32e0551ba", "scanner": "scanner-primary", "fingerprint": "0eaea27e378e2759", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-24a5bf632ba36eb8", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/flow-builder/flows/${tenantId}/${flowId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1710)"}, "properties": {"repobilityId": "18edd6a898ef1639", "scanner": "scanner-primary", "fingerprint": "24a5bf632ba36eb8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-027e89cf8ef58645", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/${tenantId}/${flowId}/activate (src/Invekto.Backend/Dashboard/src/lib/api.ts:1714)"}, "properties": {"repobilityId": "6a206cca23924ad0", "scanner": "scanner-primary", "fingerprint": "027e89cf8ef58645", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dd2652f84be90b70", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/${tenantId}/${flowId}/deactivate (src/Invekto.Backend/Dashboard/src/lib/api.ts:1718)"}, "properties": {"repobilityId": "5f3c0d43be6ef9a1", "scanner": "scanner-primary", "fingerprint": "dd2652f84be90b70", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a617fd93d84dd223", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId}/${flowId}/versions (src/Invekto.Backend/Dashboard/src/lib/api.ts:1722)"}, "properties": {"repobilityId": "05ff35ce1fde159d", "scanner": "scanner-primary", "fingerprint": "a617fd93d84dd223", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f9e9779e00289677", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId}/${flowId}/versions/${versionNumber} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1726)"}, "properties": {"repobilityId": "ae42243cc1c6d856", "scanner": "scanner-primary", "fingerprint": "f9e9779e00289677", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4220a8889617092a", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/${tenantId}/${flowId}/versions/${versionNumber}/rollback (src/Invekto.Backend/Dashboard/src/lib/api.ts:1730)"}, "properties": {"repobilityId": "14ce588cdc8885bd", "scanner": "scanner-primary", "fingerprint": "4220a8889617092a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f1571e460f2600b4", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/flow-builder/flows/validate (src/Invekto.Backend/Dashboard/src/lib/api.ts:1734)"}, "properties": {"repobilityId": "876f1118b101123a", "scanner": "scanner-primary", "fingerprint": "f1571e460f2600b4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e6e329d3e80f75a1", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/flow-builder/simulation/start (src/Invekto.Backend/Dashboard/src/lib/api.ts:1740)"}, "properties": {"repobilityId": "c1f6c884e3ee87c3", "scanner": "scanner-primary", "fingerprint": "e6e329d3e80f75a1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e2bf75cca071cd10", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/flow-builder/simulation/step (src/Invekto.Backend/Dashboard/src/lib/api.ts:1746)"}, "properties": {"repobilityId": "e79e800a5dac4c24", "scanner": "scanner-primary", "fingerprint": "e2bf75cca071cd10", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6e05bb3fccb9e3e4", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/flow-builder/simulation/${sessionId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1752)"}, "properties": {"repobilityId": "0a13784023775c8b", "scanner": "scanner-primary", "fingerprint": "6e05bb3fccb9e3e4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e09d2325d9f0be39", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId}/${flowId}/executions?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1763)"}, "properties": {"repobilityId": "bffccd451e3ebc26", "scanner": "scanner-primary", "fingerprint": "e09d2325d9f0be39", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cca7e7a1890a40f7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/flows/${tenantId}/${flowId}/executions/${logId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1768)"}, "properties": {"repobilityId": "0540d963c2de6297", "scanner": "scanner-primary", "fingerprint": "cca7e7a1890a40f7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b8b9ed22f322bc2c", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/monitor/${tenantId}/executions?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1786)"}, "properties": {"repobilityId": "8219840e0c7c82e8", "scanner": "scanner-primary", "fingerprint": "b8b9ed22f322bc2c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-035f9b885e90f23f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/instances/available${params} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1791)"}, "properties": {"repobilityId": "ad6c63525cb82603", "scanner": "scanner-primary", "fingerprint": "035f9b885e90f23f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e54c92d2e0e99138", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/customer-feature-groups (src/Invekto.Backend/Dashboard/src/lib/api.ts:1796)"}, "properties": {"repobilityId": "f7682b7ff11b8ea0", "scanner": "scanner-primary", "fingerprint": "e54c92d2e0e99138", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1a770b93ab5ccab6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/customer-feature-groups/cache-invalidate (src/Invekto.Backend/Dashboard/src/lib/api.ts:1800)"}, "properties": {"repobilityId": "df68704f51625998", "scanner": "scanner-primary", "fingerprint": "1a770b93ab5ccab6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-54224ca9dbeae4d8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/flow-builder/tenant/working-hours (src/Invekto.Backend/Dashboard/src/lib/api.ts:1804)"}, "properties": {"repobilityId": "b30f18a9d8daef8b", "scanner": "scanner-primary", "fingerprint": "54224ca9dbeae4d8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0b8719e80fb43a05", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/templates/catalog?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1818)"}, "properties": {"repobilityId": "ce597a4aec565b56", "scanner": "scanner-primary", "fingerprint": "0b8719e80fb43a05", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-972b16681ee278dd", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/templates/catalog/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1823)"}, "properties": {"repobilityId": "ca24ae23ccc73b8c", "scanner": "scanner-primary", "fingerprint": "972b16681ee278dd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7bcc436a6e353e9a", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/templates/catalog/${id}/publish (src/Invekto.Backend/Dashboard/src/lib/api.ts:1827)"}, "properties": {"repobilityId": "7bc2c5bc023905bd", "scanner": "scanner-primary", "fingerprint": "7bcc436a6e353e9a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bb37c0afae7a6771", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/templates/catalog (src/Invekto.Backend/Dashboard/src/lib/api.ts:1832)"}, "properties": {"repobilityId": "ca8b129dded6865d", "scanner": "scanner-primary", "fingerprint": "bb37c0afae7a6771", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0cbe3c3d64b061ae", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/templates/catalog/bulk (src/Invekto.Backend/Dashboard/src/lib/api.ts:1844)"}, "properties": {"repobilityId": "b58d97b945db4da2", "scanner": "scanner-primary", "fingerprint": "0cbe3c3d64b061ae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6d5c2e497fc3dbf8", "level": "error", "message": {"text": "Dangling fetch: PUT /api/ops/templates/catalog/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1859)"}, "properties": {"repobilityId": "a770d3f8ff65e472", "scanner": "scanner-primary", "fingerprint": "6d5c2e497fc3dbf8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f4a380e0a45bdfcb", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/ops/templates/catalog/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1866)"}, "properties": {"repobilityId": "4cea667b736343be", "scanner": "scanner-primary", "fingerprint": "f4a380e0a45bdfcb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8c417ceaa4b26e09", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/templates/catalog/${id}/versions (src/Invekto.Backend/Dashboard/src/lib/api.ts:1870)"}, "properties": {"repobilityId": "e9b8ee4c59465ee3", "scanner": "scanner-primary", "fingerprint": "8c417ceaa4b26e09", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-566c70dcfa06e2e3", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/templates/suggestions?${sp} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1882)"}, "properties": {"repobilityId": "c18f87008e58a32b", "scanner": "scanner-primary", "fingerprint": "566c70dcfa06e2e3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1ded002df4e8ecee", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/templates/extract-from-analysis/${analysisId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1889)"}, "properties": {"repobilityId": "0921c48825db380f", "scanner": "scanner-primary", "fingerprint": "1ded002df4e8ecee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d1a5420eb37e30d6", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/templates/suggestions/${id}/review (src/Invekto.Backend/Dashboard/src/lib/api.ts:1896)"}, "properties": {"repobilityId": "b0a4726c93c44c68", "scanner": "scanner-primary", "fingerprint": "d1a5420eb37e30d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5263a66351a18cfb", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/templates/suggestions/bulk-review (src/Invekto.Backend/Dashboard/src/lib/api.ts:1902)"}, "properties": {"repobilityId": "76a3addf58d2ebf2", "scanner": "scanner-primary", "fingerprint": "5263a66351a18cfb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b7b78d6dee2ff0eb", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/templates/${tenantId}/onboard (src/Invekto.Backend/Dashboard/src/lib/api.ts:1908)"}, "properties": {"repobilityId": "fde25a7410f5af1f", "scanner": "scanner-primary", "fingerprint": "b7b78d6dee2ff0eb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6a69813b73c5f6e6", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/knowledge/${tenantId}/intents (src/Invekto.Backend/Dashboard/src/lib/api.ts:1916)"}, "properties": {"repobilityId": "69a4653ae9a24c8a", "scanner": "scanner-primary", "fingerprint": "6a69813b73c5f6e6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f71a84e53cd51db8", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/knowledge/${tenantId}/intents (src/Invekto.Backend/Dashboard/src/lib/api.ts:1920)"}, "properties": {"repobilityId": "6c9f473333a7035e", "scanner": "scanner-primary", "fingerprint": "f71a84e53cd51db8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f81753bb0dad4e19", "level": "error", "message": {"text": "Dangling fetch: PUT /api/ops/knowledge/${tenantId}/intents/${intentId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1926)"}, "properties": {"repobilityId": "f35c857ffe407bbd", "scanner": "scanner-primary", "fingerprint": "f81753bb0dad4e19", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3627c3ba9f076e53", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/ops/knowledge/${tenantId}/intents/${intentId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1932)"}, "properties": {"repobilityId": "bf6b90b15d03c917", "scanner": "scanner-primary", "fingerprint": "3627c3ba9f076e53", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-49446561d5873025", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/onboarding/status (src/Invekto.Backend/Dashboard/src/lib/api.ts:1939)"}, "properties": {"repobilityId": "fd652b47e33c55a7", "scanner": "scanner-primary", "fingerprint": "49446561d5873025", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a4637cc0babc05e2", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/dashboard${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1949)"}, "properties": {"repobilityId": "c96b82f6544d0e94", "scanner": "scanner-primary", "fingerprint": "a4637cc0babc05e2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8db8a9dc6544bf5f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/revenue${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1957)"}, "properties": {"repobilityId": "78f6e90ecb00c385", "scanner": "scanner-primary", "fingerprint": "8db8a9dc6544bf5f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-93281143c9c98338", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/agents${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1964)"}, "properties": {"repobilityId": "8ad75a2f101ad295", "scanner": "scanner-primary", "fingerprint": "93281143c9c98338", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b63ff36e2d2bf3b0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/objections${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1971)"}, "properties": {"repobilityId": "d6cbe52fe274b74c", "scanner": "scanner-primary", "fingerprint": "b63ff36e2d2bf3b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e9b6ec3f9f0a34a7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/response-time${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1978)"}, "properties": {"repobilityId": "5950a32e2fad01f3", "scanner": "scanner-primary", "fingerprint": "e9b6ec3f9f0a34a7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8174ed9250e340f8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/rescue${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1985)"}, "properties": {"repobilityId": "9deee1d0caf9df7e", "scanner": "scanner-primary", "fingerprint": "8174ed9250e340f8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2dc54b3b0f4ee5c7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/quality${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1992)"}, "properties": {"repobilityId": "0a674b4241fc55e9", "scanner": "scanner-primary", "fingerprint": "2dc54b3b0f4ee5c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b731818828136ccb", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/demand${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:1999)"}, "properties": {"repobilityId": "0c89751657820f5c", "scanner": "scanner-primary", "fingerprint": "b731818828136ccb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5b420ed14bc4d7f8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/templates?sector=${encodeURIComponent(sector)} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2003)"}, "properties": {"repobilityId": "f44b5546b6ff3d82", "scanner": "scanner-primary", "fingerprint": "5b420ed14bc4d7f8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9e5b7dc92a1011e5", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/wa/${tenantId}/ri/templates/${type}/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2007)"}, "properties": {"repobilityId": "842d24cdf3520f2c", "scanner": "scanner-primary", "fingerprint": "9e5b7dc92a1011e5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-69810c7e2797c3ba", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/wa/${tenantId}/ri/templates/${type} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2014)"}, "properties": {"repobilityId": "1c2bd73ff5f0487f", "scanner": "scanner-primary", "fingerprint": "69810c7e2797c3ba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5fc41bb5f3439a31", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/wa/${tenantId}/ri/templates/${type}/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2021)"}, "properties": {"repobilityId": "1adf3c32341d28e3", "scanner": "scanner-primary", "fingerprint": "5fc41bb5f3439a31", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-549321cd5861ccd1", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/wa/${tenantId}/ri/templates/${type}/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2028)"}, "properties": {"repobilityId": "32c2806a0473f8d1", "scanner": "scanner-primary", "fingerprint": "549321cd5861ccd1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b69964ca09e5e57a", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/wa/${tenantId}/ri/feedback (src/Invekto.Backend/Dashboard/src/lib/api.ts:2034)"}, "properties": {"repobilityId": "5fdeff77a153f527", "scanner": "scanner-primary", "fingerprint": "b69964ca09e5e57a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-21ae73e91cc13a08", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/benchmarks?sector=${encodeURIComponent(sector)} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2041)"}, "properties": {"repobilityId": "19b11726886d70c1", "scanner": "scanner-primary", "fingerprint": "21ae73e91cc13a08", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2932a15e210422c5", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/wa/${tenantId}/ri/onboarding${params} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2046)"}, "properties": {"repobilityId": "9b7657aa462b594a", "scanner": "scanner-primary", "fingerprint": "2932a15e210422c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ee3eb88ceb41022d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/rescue/stats (src/Invekto.Backend/Dashboard/src/lib/api.ts:2052)"}, "properties": {"repobilityId": "e504b13abe673f3c", "scanner": "scanner-primary", "fingerprint": "ee3eb88ceb41022d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2011d82f0b50fff9", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/rescue/risks${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2060)"}, "properties": {"repobilityId": "832ea1a55fdaf11e", "scanner": "scanner-primary", "fingerprint": "2011d82f0b50fff9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2cd76b970d74069b", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/rescue/risks/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2064)"}, "properties": {"repobilityId": "1d39b46e8d79035a", "scanner": "scanner-primary", "fingerprint": "2cd76b970d74069b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-41e6413d619d34b0", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/rescue/templates${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2075)"}, "properties": {"repobilityId": "a1098eb0e1cb94cf", "scanner": "scanner-primary", "fingerprint": "41e6413d619d34b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aa0b270d5596c80c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/rescue/templates (src/Invekto.Backend/Dashboard/src/lib/api.ts:2079)"}, "properties": {"repobilityId": "8574ca6f082ce660", "scanner": "scanner-primary", "fingerprint": "aa0b270d5596c80c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4570e5ce9c7352b0", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/rescue/templates/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2086)"}, "properties": {"repobilityId": "4b9bf68a5c650416", "scanner": "scanner-primary", "fingerprint": "4570e5ce9c7352b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-16fc778316e1ae59", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/rescue/templates/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2093)"}, "properties": {"repobilityId": "f650c9bad063dd55", "scanner": "scanner-primary", "fingerprint": "16fc778316e1ae59", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ab30ba594668b895", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/webchat/conversations${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2102)"}, "properties": {"repobilityId": "4c2f8d9a7dacf61c", "scanner": "scanner-primary", "fingerprint": "ab30ba594668b895", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ee6d03514b09795d", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/webchat/conversations/${conversationId}/messages (src/Invekto.Backend/Dashboard/src/lib/api.ts:2106)"}, "properties": {"repobilityId": "86d6d65b00fbec7e", "scanner": "scanner-primary", "fingerprint": "ee6d03514b09795d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8993e17a76840889", "level": "error", "message": {"text": "Dangling fetch: POST /api/ops/webchat/conversations/${conversationId}/messages (src/Invekto.Backend/Dashboard/src/lib/api.ts:2110)"}, "properties": {"repobilityId": "e052e43ab7397f89", "scanner": "scanner-primary", "fingerprint": "8993e17a76840889", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bbf4d060bfda5a96", "level": "error", "message": {"text": "Dangling fetch: PUT /api/ops/webchat/conversations/${conversationId}/close (src/Invekto.Backend/Dashboard/src/lib/api.ts:2117)"}, "properties": {"repobilityId": "7396d857ae9d7a30", "scanner": "scanner-primary", "fingerprint": "bbf4d060bfda5a96", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a1a7d98f0518ac1e", "level": "error", "message": {"text": "Dangling fetch: PUT /api/ops/webchat/conversations/${conversationId}/route-ai (src/Invekto.Backend/Dashboard/src/lib/api.ts:2123)"}, "properties": {"repobilityId": "8b99882fde6b7f69", "scanner": "scanner-primary", "fingerprint": "a1a7d98f0518ac1e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6d6a6748363c9984", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/webchat/conversations/${conversationId}/visitor (src/Invekto.Backend/Dashboard/src/lib/api.ts:2129)"}, "properties": {"repobilityId": "62691cc9ed0f3bce", "scanner": "scanner-primary", "fingerprint": "6d6a6748363c9984", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-46e778fda868f86e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant/landing/settings (src/Invekto.Backend/Dashboard/src/lib/api.ts:2134)"}, "properties": {"repobilityId": "d5a2eeda5fb19ecb", "scanner": "scanner-primary", "fingerprint": "46e778fda868f86e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a15d8731cb0fcbdc", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/tenant/landing/apikey/rotate (src/Invekto.Backend/Dashboard/src/lib/api.ts:2140)"}, "properties": {"repobilityId": "154537666911c798", "scanner": "scanner-primary", "fingerprint": "a15d8731cb0fcbdc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c228e95ba48d1c4d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/tenant/landing/apikey/revoke (src/Invekto.Backend/Dashboard/src/lib/api.ts:2147)"}, "properties": {"repobilityId": "052ac177bf7b855e", "scanner": "scanner-primary", "fingerprint": "c228e95ba48d1c4d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c2362fc9391c5a52", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/tenant/landing/fieldmap (src/Invekto.Backend/Dashboard/src/lib/api.ts:2156)"}, "properties": {"repobilityId": "1aa7d3c2829c758c", "scanner": "scanner-primary", "fingerprint": "c2362fc9391c5a52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4e5d20da43fdf5ac", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/tenant/landing/dry-run (src/Invekto.Backend/Dashboard/src/lib/api.ts:2164)"}, "properties": {"repobilityId": "35fea153f9712cfe", "scanner": "scanner-primary", "fingerprint": "4e5d20da43fdf5ac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-97cc391497701826", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant/landing/audit${qs} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2173)"}, "properties": {"repobilityId": "66dc74142462a2e8", "scanner": "scanner-primary", "fingerprint": "97cc391497701826", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dc3f96f8e68f6ccf", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/dynamic-fields (src/Invekto.Backend/Dashboard/src/lib/api.ts:2182)"}, "properties": {"repobilityId": "437b47735a64d843", "scanner": "scanner-primary", "fingerprint": "dc3f96f8e68f6ccf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d0abc29b1fc39469", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/dynamic-fields/cache-invalidate (src/Invekto.Backend/Dashboard/src/lib/api.ts:2186)"}, "properties": {"repobilityId": "c550eb3195b89bd5", "scanner": "scanner-primary", "fingerprint": "d0abc29b1fc39469", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5a2d7f010268d03b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant-settings/field-mapping (src/Invekto.Backend/Dashboard/src/lib/api.ts:2199)"}, "properties": {"repobilityId": "f76c793e22aa18dc", "scanner": "scanner-primary", "fingerprint": "5a2d7f010268d03b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-10aeb062c46b9f4e", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/field-mapping (src/Invekto.Backend/Dashboard/src/lib/api.ts:2203)"}, "properties": {"repobilityId": "536838a5e6d8387b", "scanner": "scanner-primary", "fingerprint": "10aeb062c46b9f4e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5eace26bb5ef9021", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant-settings/followup-sequence (src/Invekto.Backend/Dashboard/src/lib/api.ts:2215)"}, "properties": {"repobilityId": "5ba110adeef9f25c", "scanner": "scanner-primary", "fingerprint": "5eace26bb5ef9021", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5a72b47b7bebbf8c", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/followup-sequence (src/Invekto.Backend/Dashboard/src/lib/api.ts:2219)"}, "properties": {"repobilityId": "9e8401271717e9c2", "scanner": "scanner-primary", "fingerprint": "5a72b47b7bebbf8c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ba0a40e3207319b2", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant/followup/runs (src/Invekto.Backend/Dashboard/src/lib/api.ts:2227)"}, "properties": {"repobilityId": "70a4d6fc6cfee0cf", "scanner": "scanner-primary", "fingerprint": "ba0a40e3207319b2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d3694bd83bc7239e", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant-settings/campaign-config (src/Invekto.Backend/Dashboard/src/lib/api.ts:2239)"}, "properties": {"repobilityId": "d667847111e80d43", "scanner": "scanner-primary", "fingerprint": "d3694bd83bc7239e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d411bb71d1c6691d", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/campaign-config (src/Invekto.Backend/Dashboard/src/lib/api.ts:2243)"}, "properties": {"repobilityId": "7d6f511f4b837046", "scanner": "scanner-primary", "fingerprint": "d411bb71d1c6691d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9387fd3ea509ba73", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant-settings/clinic-metadata (src/Invekto.Backend/Dashboard/src/lib/api.ts:2259)"}, "properties": {"repobilityId": "a8717ec2c9678d06", "scanner": "scanner-primary", "fingerprint": "9387fd3ea509ba73", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0be5645d8c4dc381", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/clinic-metadata (src/Invekto.Backend/Dashboard/src/lib/api.ts:2263)"}, "properties": {"repobilityId": "2b2272ec608b7364", "scanner": "scanner-primary", "fingerprint": "0be5645d8c4dc381", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6b3a2e192804e0f2", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen (src/Invekto.Backend/Dashboard/src/lib/api.ts:2279)"}, "properties": {"repobilityId": "033453e8db9d015b", "scanner": "scanner-primary", "fingerprint": "6b3a2e192804e0f2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7b1904eeae5a1f6b", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/tenant-settings/meta-leadgen (src/Invekto.Backend/Dashboard/src/lib/api.ts:2283)"}, "properties": {"repobilityId": "f108a7455a714684", "scanner": "scanner-primary", "fingerprint": "7b1904eeae5a1f6b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1642602d0e69ab59", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/tenant-settings/meta-leadgen/rotate-verify-token (src/Invekto.Backend/Dashboard/src/lib/api.ts:2291)"}, "properties": {"repobilityId": "cd3602e39f504efb", "scanner": "scanner-primary", "fingerprint": "1642602d0e69ab59", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8a9a7ca2b2b561df", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen/discover-forms (src/Invekto.Backend/Dashboard/src/lib/api.ts:2297)"}, "properties": {"repobilityId": "b048090b203de795", "scanner": "scanner-primary", "fingerprint": "8a9a7ca2b2b561df", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d3bc10dd01f49279", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/tenant-settings/meta-leadgen/events?limit=${limit} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2301)"}, "properties": {"repobilityId": "ac24d4035fed38b1", "scanner": "scanner-primary", "fingerprint": "d3bc10dd01f49279", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-be23895f1709103d", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/templates${q} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2310)"}, "properties": {"repobilityId": "5a94e25d306c044e", "scanner": "scanner-primary", "fingerprint": "be23895f1709103d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e6478719c3815628", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/data-lists (src/Invekto.Backend/Dashboard/src/lib/api.ts:2314)"}, "properties": {"repobilityId": "eb5b66143d623545", "scanner": "scanner-primary", "fingerprint": "e6478719c3815628", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-32ae2402ae9eb677", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/data-lists (src/Invekto.Backend/Dashboard/src/lib/api.ts:2318)"}, "properties": {"repobilityId": "63497463891185be", "scanner": "scanner-primary", "fingerprint": "32ae2402ae9eb677", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-afa14df8fff8501f", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/outbound/data-lists/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2326)"}, "properties": {"repobilityId": "730bec0dd30d2f60", "scanner": "scanner-primary", "fingerprint": "afa14df8fff8501f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9455b0284d238eaa", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/outbound/data-lists/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2334)"}, "properties": {"repobilityId": "40b2a27e03c32211", "scanner": "scanner-primary", "fingerprint": "9455b0284d238eaa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c99104b2b994a709", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/data-lists/records/exists (src/Invekto.Backend/Dashboard/src/lib/api.ts:2340)"}, "properties": {"repobilityId": "f3a1d17dcc722996", "scanner": "scanner-primary", "fingerprint": "c99104b2b994a709", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-947f8c60c54723de", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/data-lists/import (src/Invekto.Backend/Dashboard/src/lib/api.ts:2348)"}, "properties": {"repobilityId": "33d20872edad4fd9", "scanner": "scanner-primary", "fingerprint": "947f8c60c54723de", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0acebb065703d432", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/data-lists/${listId}/records?${p.toString()} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2370)"}, "properties": {"repobilityId": "ba93763969ac97a7", "scanner": "scanner-primary", "fingerprint": "0acebb065703d432", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-473a5ee458979325", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/data-lists/${listId}/records (src/Invekto.Backend/Dashboard/src/lib/api.ts:2376)"}, "properties": {"repobilityId": "aac516f6b3072fdb", "scanner": "scanner-primary", "fingerprint": "473a5ee458979325", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d46b321da60a2892", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/outbound/data-lists/${listId}/records/${recordId} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2384)"}, "properties": {"repobilityId": "8efaf5089fb1a0c6", "scanner": "scanner-primary", "fingerprint": "d46b321da60a2892", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-854c97e71424225e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/bulk-send/preview-from-list (src/Invekto.Backend/Dashboard/src/lib/api.ts:2389)"}, "properties": {"repobilityId": "4809eb2a97ccad12", "scanner": "scanner-primary", "fingerprint": "854c97e71424225e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-570eaae205cd8657", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/bulk-send/confirm (src/Invekto.Backend/Dashboard/src/lib/api.ts:2397)"}, "properties": {"repobilityId": "56684e67365d3fe3", "scanner": "scanner-primary", "fingerprint": "570eaae205cd8657", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-25b7ce1f88c7be27", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/bulk-send/${encodeURIComponent(campaignId)}/status (src/Invekto.Backend/Dashboard/src/lib/api.ts:2405)"}, "properties": {"repobilityId": "09a5d64799d5f9f2", "scanner": "scanner-primary", "fingerprint": "25b7ce1f88c7be27", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c7d032342b131912", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/projects/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2417)"}, "properties": {"repobilityId": "0c2d68297b024bae", "scanner": "scanner-primary", "fingerprint": "c7d032342b131912", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8ece60b2fab75b52", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects (src/Invekto.Backend/Dashboard/src/lib/api.ts:2421)"}, "properties": {"repobilityId": "e3794e024789bda8", "scanner": "scanner-primary", "fingerprint": "8ece60b2fab75b52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e91c450323385f0e", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/outbound/projects/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2429)"}, "properties": {"repobilityId": "fa02aa2fd35c20bd", "scanner": "scanner-primary", "fingerprint": "e91c450323385f0e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ced3055f95c88a28", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/outbound/projects/${id} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2438)"}, "properties": {"repobilityId": "b441145450fcb68a", "scanner": "scanner-primary", "fingerprint": "ced3055f95c88a28", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4b51c432d0b416e8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/send/preview (src/Invekto.Backend/Dashboard/src/lib/api.ts:2447)"}, "properties": {"repobilityId": "46589d947cfbcaf3", "scanner": "scanner-primary", "fingerprint": "4b51c432d0b416e8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3f0b44b1cc51cc80", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/send/confirm (src/Invekto.Backend/Dashboard/src/lib/api.ts:2455)"}, "properties": {"repobilityId": "be4a8cafb5010131", "scanner": "scanner-primary", "fingerprint": "3f0b44b1cc51cc80", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7d6280d8d7426d65", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/projects/${projectId}/send/status (src/Invekto.Backend/Dashboard/src/lib/api.ts:2463)"}, "properties": {"repobilityId": "11091c9e0cbbbac5", "scanner": "scanner-primary", "fingerprint": "7d6280d8d7426d65", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-35d19014e6dfc433", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/send/pause (src/Invekto.Backend/Dashboard/src/lib/api.ts:2468)"}, "properties": {"repobilityId": "78df4997dbb8fe8c", "scanner": "scanner-primary", "fingerprint": "35d19014e6dfc433", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d513c4dcf1d36c5e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/send/resume (src/Invekto.Backend/Dashboard/src/lib/api.ts:2472)"}, "properties": {"repobilityId": "b6f94f4ac1764c82", "scanner": "scanner-primary", "fingerprint": "d513c4dcf1d36c5e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-80647871fc900867", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/send/cancel (src/Invekto.Backend/Dashboard/src/lib/api.ts:2476)"}, "properties": {"repobilityId": "98a136b9d97995cd", "scanner": "scanner-primary", "fingerprint": "80647871fc900867", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e44a9a3c8f16bb6f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/projects/${projectId}/report/runs (src/Invekto.Backend/Dashboard/src/lib/api.ts:2481)"}, "properties": {"repobilityId": "4511dfc6908d31f1", "scanner": "scanner-primary", "fingerprint": "e44a9a3c8f16bb6f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4bb9b72e444e2a2a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/projects/${projectId}/report/recipients?${qs.toString()} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2493)"}, "properties": {"repobilityId": "73564e1f0d93f6d6", "scanner": "scanner-primary", "fingerprint": "4bb9b72e444e2a2a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-562be0d1f03f9728", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/report/resend (src/Invekto.Backend/Dashboard/src/lib/api.ts:2498)"}, "properties": {"repobilityId": "2572bcdd301c2788", "scanner": "scanner-primary", "fingerprint": "562be0d1f03f9728", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5e557a9942d6571d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/report/resend-bulk (src/Invekto.Backend/Dashboard/src/lib/api.ts:2507)"}, "properties": {"repobilityId": "e1a5404996b05381", "scanner": "scanner-primary", "fingerprint": "5e557a9942d6571d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0bb07068edb2a0d6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/${projectId}/report/refresh-status (src/Invekto.Backend/Dashboard/src/lib/api.ts:2515)"}, "properties": {"repobilityId": "6f69864225044de6", "scanner": "scanner-primary", "fingerprint": "0bb07068edb2a0d6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-949839fbf1e5762d", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/projects/send/test (src/Invekto.Backend/Dashboard/src/lib/api.ts:2525)"}, "properties": {"repobilityId": "faa45658cf509b16", "scanner": "scanner-primary", "fingerprint": "949839fbf1e5762d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-399aa77242e585ad", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/broadcast/${encodeURIComponent(broadcastId)}/status (src/Invekto.Backend/Dashboard/src/lib/api.ts:2535)"}, "properties": {"repobilityId": "ecc9cc7ff83729c1", "scanner": "scanner-primary", "fingerprint": "399aa77242e585ad", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ca3ced76d6a410b8", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/exports/send-jobs (src/Invekto.Backend/Dashboard/src/lib/api.ts:2541)"}, "properties": {"repobilityId": "296e0e0cbd4f5bc7", "scanner": "scanner-primary", "fingerprint": "ca3ced76d6a410b8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f7a50499a9db4794", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/exports/send-job/${jobId}/report-data?for=pdf (src/Invekto.Backend/Dashboard/src/lib/api.ts:2553)"}, "properties": {"repobilityId": "c36a5009a064a0da", "scanner": "scanner-primary", "fingerprint": "f7a50499a9db4794", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fa1754a9a151f473", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/exports/filter-options (src/Invekto.Backend/Dashboard/src/lib/api.ts:2571)"}, "properties": {"repobilityId": "988c6f585c1a953d", "scanner": "scanner-primary", "fingerprint": "fa1754a9a151f473", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-17620f07de950161", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/exports/recipients/count${this.exportFilterQuery(filter)} (src/Invekto.Backend/Dashboard/src/lib/api.ts:2575)"}, "properties": {"repobilityId": "5a10c7cf65bdd031", "scanner": "scanner-primary", "fingerprint": "17620f07de950161", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7da40cbf0ec248b7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/outbound/exports/recipients/create-list (src/Invekto.Backend/Dashboard/src/lib/api.ts:2586)"}, "properties": {"repobilityId": "742bb105cc1538ed", "scanner": "scanner-primary", "fingerprint": "7da40cbf0ec248b7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bdad849cccabeb21", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/outbound/exports/history (src/Invekto.Backend/Dashboard/src/lib/api.ts:2604)"}, "properties": {"repobilityId": "25f717d8f101371f", "scanner": "scanner-primary", "fingerprint": "bdad849cccabeb21", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a58cb350bf139653", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/postman (src/Invekto.Backend/Dashboard/src/pages/TenantsPage.tsx:88)"}, "properties": {"repobilityId": "6d4c9d7a873d5314", "scanner": "scanner-primary", "fingerprint": "a58cb350bf139653", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-91d5116f2b2de79f", "level": "error", "message": {"text": "Dangling fetch: GET /ops/voice-jwt (src/Invekto.Backend/Dashboard/src/pages/VoiceTestPage.tsx:56)"}, "properties": {"repobilityId": "303a19b9160a7494", "scanner": "scanner-primary", "fingerprint": "91d5116f2b2de79f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8226ea47b40ba17e", "level": "error", "message": {"text": "Dangling fetch: GET /api/ops/postman (src/Invekto.Backend/Dashboard/src/pages/DashboardPage.tsx:66)"}, "properties": {"repobilityId": "a1ad842b3c556d87", "scanner": "scanner-primary", "fingerprint": "8226ea47b40ba17e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-02b8e3d182bcc4ee", "level": "note", "message": {"text": "Unused endpoint: USE /api/jwt"}, "properties": {"repobilityId": "58db2ffff91b0561", "scanner": "scanner-primary", "fingerprint": "02b8e3d182bcc4ee", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ccd9c54d68b606cd", "level": "note", "message": {"text": "Unused endpoint: USE /api/webhook"}, "properties": {"repobilityId": "7a50adcd702d88d5", "scanner": "scanner-primary", "fingerprint": "ccd9c54d68b606cd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4e780bf54f4b9035", "level": "note", "message": {"text": "Unused endpoint: USE /api/callback"}, "properties": {"repobilityId": "c223624c8ed8de24", "scanner": "scanner-primary", "fingerprint": "4e780bf54f4b9035", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-972b54078ec2581f", "level": "note", "message": {"text": "Unused endpoint: USE /api/health"}, "properties": {"repobilityId": "a735778b3f345e8c", "scanner": "scanner-primary", "fingerprint": "972b54078ec2581f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e4b2c2b7682a8346", "level": "note", "message": {"text": "Unused endpoint: USE /api/logs"}, "properties": {"repobilityId": "c58a690f904e1b73", "scanner": "scanner-primary", "fingerprint": "e4b2c2b7682a8346", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3b424b7659db9932", "level": "note", "message": {"text": "Unused endpoint: USE /api/scenarios"}, "properties": {"repobilityId": "1c871db3e523c553", "scanner": "scanner-primary", "fingerprint": "3b424b7659db9932", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-35ede0341866225f", "level": "note", "message": {"text": "Unused endpoint: USE /api/traffic"}, "properties": {"repobilityId": "28f2f9b9b74740f8", "scanner": "scanner-primary", "fingerprint": "35ede0341866225f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a009b1a56794f45", "level": "note", "message": {"text": "Unused endpoint: POST /"}, "properties": {"repobilityId": "486a365a62985dc3", "scanner": "scanner-primary", "fingerprint": "7a009b1a56794f45", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-970eb92d6ec2bfaa", "level": "note", "message": {"text": "Unused endpoint: POST /generate"}, "properties": {"repobilityId": "651b6aa45ad52c4e", "scanner": "scanner-primary", "fingerprint": "970eb92d6ec2bfaa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c1aa087bfabf644c", "level": "note", "message": {"text": "Unused endpoint: POST /decode"}, "properties": {"repobilityId": "4a53033cf828a365", "scanner": "scanner-primary", "fingerprint": "c1aa087bfabf644c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "01c477409bed1c21", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-69a693dfc33637f4", "level": "note", "message": {"text": "Unused endpoint: POST /run"}, "properties": {"repobilityId": "8cbc59cf3d885690", "scanner": "scanner-primary", "fingerprint": "69a693dfc33637f4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e69c90752a76eba5", "level": "note", "message": {"text": "Unused endpoint: POST /stop"}, "properties": {"repobilityId": "942a2e1b7b5b9e23", "scanner": "scanner-primary", "fingerprint": "e69c90752a76eba5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2f222a275ed687b3", "level": "note", "message": {"text": "Unused endpoint: POST /send"}, "properties": {"repobilityId": "dc4099ff3552fb4e", "scanner": "scanner-primary", "fingerprint": "2f222a275ed687b3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3b5c17c01e439662", "level": "note", "message": {"text": "Unused endpoint: POST /request"}, "properties": {"repobilityId": "6437d720fb9cc186", "scanner": "scanner-primary", "fingerprint": "3b5c17c01e439662", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a8c328924d8724c9", "level": "note", "message": {"text": "Unused endpoint: GET /services"}, "properties": {"repobilityId": "2974cf363ed2dff8", "scanner": "scanner-primary", "fingerprint": "a8c328924d8724c9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9de4cecd0e235584", "level": "note", "message": {"text": "Unused endpoint: GET /pending"}, "properties": {"repobilityId": "de5bff01319653b8", "scanner": "scanner-primary", "fingerprint": "9de4cecd0e235584", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3b30f4c0994a30b4", "level": "note", "message": {"text": "Unused endpoint: DELETE /"}, "properties": {"repobilityId": "392c8000cbe31934", "scanner": "scanner-primary", "fingerprint": "3b30f4c0994a30b4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e5f899fff8e655a2", "level": "note", "message": {"text": "Unused endpoint: GET /check"}, "properties": {"repobilityId": "3f34fbfaa02c5bcd", "scanner": "scanner-primary", "fingerprint": "e5f899fff8e655a2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-35a741079ddc6fcc", "level": "note", "message": {"text": "Unused endpoint: GET /stream"}, "properties": {"repobilityId": "5cdecaf50114604d", "scanner": "scanner-primary", "fingerprint": "35a741079ddc6fcc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-210acf59dc030082", "level": "note", "message": {"text": "Unused endpoint: GET /grouped"}, "properties": {"repobilityId": "099951a2bb401f27", "scanner": "scanner-primary", "fingerprint": "210acf59dc030082", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1515654f1d0fdbfe", "level": "note", "message": {"text": "Unused endpoint: GET /errors"}, "properties": {"repobilityId": "3be46c5a0faae3b7", "scanner": "scanner-primary", "fingerprint": "1515654f1d0fdbfe", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}