{"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-0c70b4c0ab65c9a9", "name": "Possibly dead Python function: cmd_surec", "shortDescription": {"text": "Possibly dead Python function: cmd_surec"}, "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-962586e6e5d9d07b", "name": "Possibly dead Python function: cmd_brd", "shortDescription": {"text": "Possibly dead Python function: cmd_brd"}, "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-bc4ba8fdeecf649c", "name": "Possibly dead Python function: cmd_rerun", "shortDescription": {"text": "Possibly dead Python function: cmd_rerun"}, "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-536119f495793676", "name": "Possibly dead Python function: cmd_ui", "shortDescription": {"text": "Possibly dead Python function: cmd_ui"}, "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-8c23cc98bcbabb76", "name": "Possibly dead Python function: calistir_surec_analizi", "shortDescription": {"text": "Possibly dead Python function: calistir_surec_analizi"}, "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-fe82644b9c4e7a04", "name": "Possibly dead Python function: calistir_teknik_analiz", "shortDescription": {"text": "Possibly dead Python function: calistir_teknik_analiz"}, "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-58071b0059ac2002", "name": "Possibly dead Python function: calistir_brd_analizi", "shortDescription": {"text": "Possibly dead Python function: calistir_brd_analizi"}, "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-3d631fcb82dde6ad", "name": "Possibly dead Python function: calistir_kapsam_analizi", "shortDescription": {"text": "Possibly dead Python function: calistir_kapsam_analizi"}, "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-f654a886f358769f", "name": "Possibly dead Python function: calistir_jira_gonder", "shortDescription": {"text": "Possibly dead Python function: calistir_jira_gonder"}, "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-b8ea481463681643", "name": "Possibly dead Python function: jira_tasks_olustur", "shortDescription": {"text": "Possibly dead Python function: jira_tasks_olustur"}, "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-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-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-906ef58f3bb32754", "name": "Very large file: app.py (2517 lines)", "shortDescription": {"text": "Very large file: app.py (2517 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-4b5278376b3a387d", "name": "Very large file: skills/base.py (1974 lines)", "shortDescription": {"text": "Very large file: skills/base.py (1974 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "0 test file(s) for 20 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5b99d1a3a09b1419", "name": "32 TODO/FIXME markers", "shortDescription": {"text": "32 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-faccb9061e9b52a0", "name": "No README detected", "shortDescription": {"text": "No README detected"}, "fullDescription": {"text": "No README file was found. Generated repos without README context are hard to operate, validate, or safely hand off."}, "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 102 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-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, operator-readme. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, ci, tests, operator-readme. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc55229a7a3c078d", "name": "Agent authority lacks a verifier contract: .mcp.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .mcp.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-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-021165c70628d879", "name": "Agent authority lacks a verifier contract: .claude/skills/atlassian-sync/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/atlassian-sync/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-6a0a18849342ba0c", "name": "Commented-code block (6 lines) in app.py:368", "shortDescription": {"text": "Commented-code block (6 lines) in app.py:368"}, "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-7c655d3d005d412c", "name": "Commented-code block (10 lines) in skills/base.py:1803", "shortDescription": {"text": "Commented-code block (10 lines) in skills/base.py:1803"}, "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-b0b5e7cb1208a7cd", "name": "13 env vars used in code but missing from .env.example", "shortDescription": {"text": "13 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ADMIN_USER`, `ALLOW_LAN_NO_AUTH`, `ANTHROPIC_API_KEY`, `AUTH_ENABLED`, `DESKTOP_MODE`, `EXTENDED_THINKING`, `HOST`, `JIRA_CALLBACK_HOST` + 5 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0be29a465de78616", "name": "Flask mutation route `heartbeat` without `@login_required` \u2014 app.py:620", "shortDescription": {"text": "Flask mutation route `heartbeat` without `@login_required` \u2014 app.py:620"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-09449ccece9bef6b", "name": "Flask mutation route `guncelle` without `@login_required` \u2014 app.py:641", "shortDescription": {"text": "Flask mutation route `guncelle` without `@login_required` \u2014 app.py:641"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a534edccd0f558ad", "name": "Flask mutation route `shutdown` without `@login_required` \u2014 app.py:678", "shortDescription": {"text": "Flask mutation route `shutdown` without `@login_required` \u2014 app.py:678"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a61e82f5888d91a2", "name": "Flask mutation route `upload` without `@login_required` \u2014 app.py:698", "shortDescription": {"text": "Flask mutation route `upload` without `@login_required` \u2014 app.py:698"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7cc6e72431900cad", "name": "Flask mutation route `run` without `@login_required` \u2014 app.py:737", "shortDescription": {"text": "Flask mutation route `run` without `@login_required` \u2014 app.py:737"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1591e9e23ffd976d", "name": "Flask mutation route `run_teknik` without `@login_required` \u2014 app.py:767", "shortDescription": {"text": "Flask mutation route `run_teknik` without `@login_required` \u2014 app.py:767"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-14c60eecafa07a7f", "name": "Flask mutation route `approve` without `@login_required` \u2014 app.py:804", "shortDescription": {"text": "Flask mutation route `approve` without `@login_required` \u2014 app.py:804"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f1046fadc0466de3", "name": "Flask mutation route `reject` without `@login_required` \u2014 app.py:817", "shortDescription": {"text": "Flask mutation route `reject` without `@login_required` \u2014 app.py:817"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-830248b2b1613f7d", "name": "Flask mutation route `upload_revised_brd` without `@login_required` \u2014 app.py:829", "shortDescription": {"text": "Flask mutation route `upload_revised_brd` without `@login_required` \u2014 app.py:829"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-390e086823c5f941", "name": "Flask mutation route `skip_kapsam` without `@login_required` \u2014 app.py:862", "shortDescription": {"text": "Flask mutation route `skip_kapsam` without `@login_required` \u2014 app.py:862"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-47a17f1e878fe486", "name": "Flask mutation route `reset` without `@login_required` \u2014 app.py:886", "shortDescription": {"text": "Flask mutation route `reset` without `@login_required` \u2014 app.py:886"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-44526f08749833a6", "name": "Flask mutation route `output_sil` without `@login_required` \u2014 app.py:908", "shortDescription": {"text": "Flask mutation route `output_sil` without `@login_required` \u2014 app.py:908"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4b646b4e77a9143c", "name": "Flask mutation route `save_history` without `@login_required` \u2014 app.py:961", "shortDescription": {"text": "Flask mutation route `save_history` without `@login_required` \u2014 app.py:961"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-96c9387dce570b6f", "name": "Flask mutation route `upload_ui_project` without `@login_required` \u2014 app.py:1038", "shortDescription": {"text": "Flask mutation route `upload_ui_project` without `@login_required` \u2014 app.py:1038"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c57217e539bca19c", "name": "Flask mutation route `upload_ui_code` without `@login_required` \u2014 app.py:1079", "shortDescription": {"text": "Flask mutation route `upload_ui_code` without `@login_required` \u2014 app.py:1079"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-91dbddf47dd5af6a", "name": "Flask mutation route `ui_file_sil` without `@login_required` \u2014 app.py:1136", "shortDescription": {"text": "Flask mutation route `ui_file_sil` without `@login_required` \u2014 app.py:1136"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5f1e57626c0a54fc", "name": "Flask mutation route `ui_files_temizle` without `@login_required` \u2014 app.py:1155", "shortDescription": {"text": "Flask mutation route `ui_files_temizle` without `@login_required` \u2014 app.py:1155"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-01c02809d14eab92", "name": "Flask mutation route `save_output` without `@login_required` \u2014 app.py:1164", "shortDescription": {"text": "Flask mutation route `save_output` without `@login_required` \u2014 app.py:1164"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-179620c6118ec7e1", "name": "Flask mutation route `rerun` without `@login_required` \u2014 app.py:1182", "shortDescription": {"text": "Flask mutation route `rerun` without `@login_required` \u2014 app.py:1182"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-655c61025ae4301e", "name": "Flask mutation route `auth_login` without `@login_required` \u2014 app.py:1293", "shortDescription": {"text": "Flask mutation route `auth_login` without `@login_required` \u2014 app.py:1293"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-566f07547eda219e", "name": "Flask mutation route `auth_logout` without `@login_required` \u2014 app.py:1317", "shortDescription": {"text": "Flask mutation route `auth_logout` without `@login_required` \u2014 app.py:1317"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-79286a599008ccaf", "name": "Flask mutation route `kullanici_ekle` without `@login_required` \u2014 app.py:1340", "shortDescription": {"text": "Flask mutation route `kullanici_ekle` without `@login_required` \u2014 app.py:1340"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4ff5fea4b832f029", "name": "Flask mutation route `kullanici_sil` without `@login_required` \u2014 app.py:1362", "shortDescription": {"text": "Flask mutation route `kullanici_sil` without `@login_required` \u2014 app.py:1362"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8930739d1342fe07", "name": "Flask mutation route `kullanici_sifre_degistir` without `@login_required` \u2014 app.py:1378", "shortDescription": {"text": "Flask mutation route `kullanici_sifre_degistir` without `@login_required` \u2014 app.py:1378"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-642fec04d59eea52", "name": "Flask mutation route `settings_kaydet` without `@login_required` \u2014 app.py:1411", "shortDescription": {"text": "Flask mutation route `settings_kaydet` without `@login_required` \u2014 app.py:1411"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2671cd52937f38a5", "name": "Flask mutation route `sorular_parse` without `@login_required` \u2014 app.py:1466", "shortDescription": {"text": "Flask mutation route `sorular_parse` without `@login_required` \u2014 app.py:1466"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a11fd7128fdfa60", "name": "Flask mutation route `soru_guncelle_endpoint` without `@login_required` \u2014 app.py:1478", "shortDescription": {"text": "Flask mutation route `soru_guncelle_endpoint` without `@login_required` \u2014 app.py:1478"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0877fb78959e5aea", "name": "Flask mutation route `soru_sil_endpoint` without `@login_required` \u2014 app.py:1507", "shortDescription": {"text": "Flask mutation route `soru_sil_endpoint` without `@login_required` \u2014 app.py:1507"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5751aa5f4ed26d3f", "name": "Flask mutation route `sorular_tumunu_sil` without `@login_required` \u2014 app.py:1522", "shortDescription": {"text": "Flask mutation route `sorular_tumunu_sil` without `@login_required` \u2014 app.py:1522"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e4c839e6a867557b", "name": "Flask mutation route `sorular_uygula` without `@login_required` \u2014 app.py:1543", "shortDescription": {"text": "Flask mutation route `sorular_uygula` without `@login_required` \u2014 app.py:1543"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-25382be29fc2d6ae", "name": "Flask mutation route `prompt_guncelle` without `@login_required` \u2014 app.py:1644", "shortDescription": {"text": "Flask mutation route `prompt_guncelle` without `@login_required` \u2014 app.py:1644"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b2dba4c0570ed11b", "name": "Flask mutation route `prompt_sifirla_route` without `@login_required` \u2014 app.py:1659", "shortDescription": {"text": "Flask mutation route `prompt_sifirla_route` without `@login_required` \u2014 app.py:1659"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-08fa8caa525762bd", "name": "Flask mutation route `approve_teknik` without `@login_required` \u2014 app.py:1672", "shortDescription": {"text": "Flask mutation route `approve_teknik` without `@login_required` \u2014 app.py:1672"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5aa32597893ced6f", "name": "Flask mutation route `approve_teknik_no_jira` without `@login_required` \u2014 app.py:1684", "shortDescription": {"text": "Flask mutation route `approve_teknik_no_jira` without `@login_required` \u2014 app.py:1684"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5296af74456a20bb", "name": "Flask mutation route `reject_teknik` without `@login_required` \u2014 app.py:1695", "shortDescription": {"text": "Flask mutation route `reject_teknik` without `@login_required` \u2014 app.py:1695"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f9c7d6db8e9d2c37", "name": "Flask mutation route `reference_upload` without `@login_required` \u2014 app.py:1731", "shortDescription": {"text": "Flask mutation route `reference_upload` without `@login_required` \u2014 app.py:1731"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-83849f692d883d5c", "name": "Flask mutation route `reference_delete` without `@login_required` \u2014 app.py:1768", "shortDescription": {"text": "Flask mutation route `reference_delete` without `@login_required` \u2014 app.py:1768"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-22d81647e44304fc", "name": "Flask mutation route `sources_confluence_ekle` without `@login_required` \u2014 app.py:1815", "shortDescription": {"text": "Flask mutation route `sources_confluence_ekle` without `@login_required` \u2014 app.py:1815"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-25be7289e07868d0", "name": "Flask mutation route `sources_confluence_sil` without `@login_required` \u2014 app.py:1829", "shortDescription": {"text": "Flask mutation route `sources_confluence_sil` without `@login_required` \u2014 app.py:1829"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0642c68265793967", "name": "Flask mutation route `sources_jira_ekle` without `@login_required` \u2014 app.py:1837", "shortDescription": {"text": "Flask mutation route `sources_jira_ekle` without `@login_required` \u2014 app.py:1837"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e3ea0bb7d5713a2f", "name": "Flask mutation route `sources_jira_sil` without `@login_required` \u2014 app.py:1851", "shortDescription": {"text": "Flask mutation route `sources_jira_sil` without `@login_required` \u2014 app.py:1851"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be7656b233bedf3f", "name": "Flask mutation route `sources_sync_baslat` without `@login_required` \u2014 app.py:1870", "shortDescription": {"text": "Flask mutation route `sources_sync_baslat` without `@login_required` \u2014 app.py:1870"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b01ae53dde89040c", "name": "Flask mutation route `reference_fetch_be` without `@login_required` \u2014 app.py:1928", "shortDescription": {"text": "Flask mutation route `reference_fetch_be` without `@login_required` \u2014 app.py:1928"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38f786dde1878b77", "name": "Flask mutation route `context_filter_kaydet` without `@login_required` \u2014 app.py:1984", "shortDescription": {"text": "Flask mutation route `context_filter_kaydet` without `@login_required` \u2014 app.py:1984"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0b4aa4c29451572e", "name": "Flask mutation route `jira_config_kaydet` without `@login_required` \u2014 app.py:2017", "shortDescription": {"text": "Flask mutation route `jira_config_kaydet` without `@login_required` \u2014 app.py:2017"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-58cfdedb2fd99c9e", "name": "Flask mutation route `jira_auth_url` without `@login_required` \u2014 app.py:2042", "shortDescription": {"text": "Flask mutation route `jira_auth_url` without `@login_required` \u2014 app.py:2042"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2c4e1a317fd33eb1", "name": "Flask mutation route `jira_test` without `@login_required` \u2014 app.py:2101", "shortDescription": {"text": "Flask mutation route `jira_test` without `@login_required` \u2014 app.py:2101"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-de4eb94ca6579eec", "name": "Flask mutation route `jira_hierarchy_onizleme` without `@login_required` \u2014 app.py:2129", "shortDescription": {"text": "Flask mutation route `jira_hierarchy_onizleme` without `@login_required` \u2014 app.py:2129"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b45f77f2bcaafb3", "name": "Flask mutation route `jira_hierarchy_olustur` without `@login_required` \u2014 app.py:2154", "shortDescription": {"text": "Flask mutation route `jira_hierarchy_olustur` without `@login_required` \u2014 app.py:2154"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-09dad688e8bf2d47", "name": "Flask mutation route `confluence_yayimla_route` without `@login_required` \u2014 app.py:2179", "shortDescription": {"text": "Flask mutation route `confluence_yayimla_route` without `@login_required` \u2014 app.py:2179"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7ca1b3a4d5f5b50b", "name": "Flask mutation route `mockup_generate` without `@login_required` \u2014 app.py:2291", "shortDescription": {"text": "Flask mutation route `mockup_generate` without `@login_required` \u2014 app.py:2291"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1e135c1f8bc9c1c8", "name": "Flask mutation route `git_pull` without `@login_required` \u2014 app.py:2389", "shortDescription": {"text": "Flask mutation route `git_pull` without `@login_required` \u2014 app.py:2389"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a6d91f2236825bf", "name": "Unused endpoint: ANY /", "shortDescription": {"text": "Unused endpoint: ANY /"}, "fullDescription": {"text": "`app.py` declares `ANY /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e753ea09f0dc24c1", "name": "Unused endpoint: ANY /kilavuz", "shortDescription": {"text": "Unused endpoint: ANY /kilavuz"}, "fullDescription": {"text": "`app.py` declares `ANY /kilavuz` 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-34445a5542caa0de", "name": "Unused endpoint: ANY /api/heartbeat", "shortDescription": {"text": "Unused endpoint: ANY /api/heartbeat"}, "fullDescription": {"text": "`app.py` declares `ANY /api/heartbeat` 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-02cb834e223ca635", "name": "Unused endpoint: ANY /api/version", "shortDescription": {"text": "Unused endpoint: ANY /api/version"}, "fullDescription": {"text": "`app.py` declares `ANY /api/version` 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-850a37057ed07911", "name": "Unused endpoint: ANY /api/update", "shortDescription": {"text": "Unused endpoint: ANY /api/update"}, "fullDescription": {"text": "`app.py` declares `ANY /api/update` 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-20d17742c7b51734", "name": "Unused endpoint: ANY /api/shutdown", "shortDescription": {"text": "Unused endpoint: ANY /api/shutdown"}, "fullDescription": {"text": "`app.py` declares `ANY /api/shutdown` 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-a71068d583beb700", "name": "Unused endpoint: ANY /api/workflow-state", "shortDescription": {"text": "Unused endpoint: ANY /api/workflow-state"}, "fullDescription": {"text": "`app.py` declares `ANY /api/workflow-state` 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-ca7212ab4dc8661b", "name": "Unused endpoint: ANY /api/upload", "shortDescription": {"text": "Unused endpoint: ANY /api/upload"}, "fullDescription": {"text": "`app.py` declares `ANY /api/upload` 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-9b8d6b0817dd1afa", "name": "Unused endpoint: ANY /api/run", "shortDescription": {"text": "Unused endpoint: ANY /api/run"}, "fullDescription": {"text": "`app.py` declares `ANY /api/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-149768f0a7dc42ce", "name": "Unused endpoint: ANY /api/run-teknik", "shortDescription": {"text": "Unused endpoint: ANY /api/run-teknik"}, "fullDescription": {"text": "`app.py` declares `ANY /api/run-teknik` 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-cd18557e3a5e6b97", "name": "Unused endpoint: ANY /api/approve", "shortDescription": {"text": "Unused endpoint: ANY /api/approve"}, "fullDescription": {"text": "`app.py` declares `ANY /api/approve` 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-a9efe5298adde8c8", "name": "Unused endpoint: ANY /api/reject", "shortDescription": {"text": "Unused endpoint: ANY /api/reject"}, "fullDescription": {"text": "`app.py` declares `ANY /api/reject` 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-61c8b14238a0ef88", "name": "Unused endpoint: ANY /api/upload-revised-brd", "shortDescription": {"text": "Unused endpoint: ANY /api/upload-revised-brd"}, "fullDescription": {"text": "`app.py` declares `ANY /api/upload-revised-brd` 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-9a02c92812cbe224", "name": "Unused endpoint: ANY /api/skip-kapsam", "shortDescription": {"text": "Unused endpoint: ANY /api/skip-kapsam"}, "fullDescription": {"text": "`app.py` declares `ANY /api/skip-kapsam` 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-0c398e3052e32c9c", "name": "Unused endpoint: ANY /api/reset", "shortDescription": {"text": "Unused endpoint: ANY /api/reset"}, "fullDescription": {"text": "`app.py` declares `ANY /api/reset` 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-a7684388c8866a95", "name": "Unused endpoint: ANY /api/output/<dosya_adi>", "shortDescription": {"text": "Unused endpoint: ANY /api/output/<dosya_adi>"}, "fullDescription": {"text": "`app.py` declares `ANY /api/output/<dosya_adi>` 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-54dcd39723884333", "name": "Unused endpoint: ANY /api/output/delete", "shortDescription": {"text": "Unused endpoint: ANY /api/output/delete"}, "fullDescription": {"text": "`app.py` declares `ANY /api/output/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-887ad32ba7cc899c", "name": "Unused endpoint: ANY /api/outputs", "shortDescription": {"text": "Unused endpoint: ANY /api/outputs"}, "fullDescription": {"text": "`app.py` declares `ANY /api/outputs` 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-87536038ad543230", "name": "Unused endpoint: ANY /api/history", "shortDescription": {"text": "Unused endpoint: ANY /api/history"}, "fullDescription": {"text": "`app.py` declares `ANY /api/history` 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-f140245ad3b414f4", "name": "Unused endpoint: ANY /api/history/<arsiv_id>/<dosya_adi>", "shortDescription": {"text": "Unused endpoint: ANY /api/history/<arsiv_id>/<dosya_adi>"}, "fullDescription": {"text": "`app.py` declares `ANY /api/history/<arsiv_id>/<dosya_adi>` 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-b43811b8a0e3f8b6", "name": "Unused endpoint: ANY /api/save-history", "shortDescription": {"text": "Unused endpoint: ANY /api/save-history"}, "fullDescription": {"text": "`app.py` declares `ANY /api/save-history` 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-b9dc07c5104aaa40", "name": "Unused endpoint: ANY /api/upload-ui-project", "shortDescription": {"text": "Unused endpoint: ANY /api/upload-ui-project"}, "fullDescription": {"text": "`app.py` declares `ANY /api/upload-ui-project` 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-e7685bfb7e02209b", "name": "Unused endpoint: ANY /api/upload-ui-code", "shortDescription": {"text": "Unused endpoint: ANY /api/upload-ui-code"}, "fullDescription": {"text": "`app.py` declares `ANY /api/upload-ui-code` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0a937fe5107e0e64", "name": "Unused endpoint: ANY /api/ui-files", "shortDescription": {"text": "Unused endpoint: ANY /api/ui-files"}, "fullDescription": {"text": "`app.py` declares `ANY /api/ui-files` 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-cf72c0a0b2be5f57", "name": "Unused endpoint: ANY /api/ui-files/content", "shortDescription": {"text": "Unused endpoint: ANY /api/ui-files/content"}, "fullDescription": {"text": "`app.py` declares `ANY /api/ui-files/content` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7e4def6689cbc249", "name": "Unused endpoint: ANY /api/ui-files/delete", "shortDescription": {"text": "Unused endpoint: ANY /api/ui-files/delete"}, "fullDescription": {"text": "`app.py` declares `ANY /api/ui-files/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-d2124a3747d2de5e", "name": "Unused endpoint: ANY /api/ui-files/clear", "shortDescription": {"text": "Unused endpoint: ANY /api/ui-files/clear"}, "fullDescription": {"text": "`app.py` declares `ANY /api/ui-files/clear` 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-28ed6a2910f4ed03", "name": "Unused endpoint: ANY /api/save-output", "shortDescription": {"text": "Unused endpoint: ANY /api/save-output"}, "fullDescription": {"text": "`app.py` declares `ANY /api/save-output` 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-788185e7df38fd91", "name": "Unused endpoint: ANY /api/rerun", "shortDescription": {"text": "Unused endpoint: ANY /api/rerun"}, "fullDescription": {"text": "`app.py` declares `ANY /api/rerun` 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-c4ad1e5ae13d62f1", "name": "Unused endpoint: ANY /api/rerun-status/<dosya_adi>", "shortDescription": {"text": "Unused endpoint: ANY /api/rerun-status/<dosya_adi>"}, "fullDescription": {"text": "`app.py` declares `ANY /api/rerun-status/<dosya_adi>` 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-4c7ad61ba1b23915", "name": "Unused endpoint: ANY /login", "shortDescription": {"text": "Unused endpoint: ANY /login"}, "fullDescription": {"text": "`app.py` declares `ANY /login` 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-0bac2999f80dd4ee", "name": "Unused endpoint: ANY /api/auth/login", "shortDescription": {"text": "Unused endpoint: ANY /api/auth/login"}, "fullDescription": {"text": "`app.py` declares `ANY /api/auth/login` 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-d13e20e9a7adb1cd", "name": "Unused endpoint: ANY /api/auth/logout", "shortDescription": {"text": "Unused endpoint: ANY /api/auth/logout"}, "fullDescription": {"text": "`app.py` declares `ANY /api/auth/logout` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fcaedbb556396417", "name": "Unused endpoint: ANY /api/auth/me", "shortDescription": {"text": "Unused endpoint: ANY /api/auth/me"}, "fullDescription": {"text": "`app.py` declares `ANY /api/auth/me` 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-33de9c10cc501140", "name": "Unused endpoint: ANY /api/users", "shortDescription": {"text": "Unused endpoint: ANY /api/users"}, "fullDescription": {"text": "`app.py` declares `ANY /api/users` 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-06b89185a1d98e85", "name": "Unused endpoint: ANY /api/users/<username>", "shortDescription": {"text": "Unused endpoint: ANY /api/users/<username>"}, "fullDescription": {"text": "`app.py` declares `ANY /api/users/<username>` 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-105a8220d4e920f3", "name": "Unused endpoint: ANY /api/users/<username>/password", "shortDescription": {"text": "Unused endpoint: ANY /api/users/<username>/password"}, "fullDescription": {"text": "`app.py` declares `ANY /api/users/<username>/password` 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-cca8483232bea4f0", "name": "Unused endpoint: ANY /api/settings", "shortDescription": {"text": "Unused endpoint: ANY /api/settings"}, "fullDescription": {"text": "`app.py` declares `ANY /api/settings` 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-067b3e8bbbcc41bb", "name": "Unused endpoint: ANY /api/sorular", "shortDescription": {"text": "Unused endpoint: ANY /api/sorular"}, "fullDescription": {"text": "`app.py` declares `ANY /api/sorular` 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-fda3e1fb5369ba47", "name": "Unused endpoint: ANY /api/sorular/parse", "shortDescription": {"text": "Unused endpoint: ANY /api/sorular/parse"}, "fullDescription": {"text": "`app.py` declares `ANY /api/sorular/parse` 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-e497da33a7afc54a", "name": "Unused endpoint: ANY /api/sorular/<soru_id>", "shortDescription": {"text": "Unused endpoint: ANY /api/sorular/<soru_id>"}, "fullDescription": {"text": "`app.py` declares `ANY /api/sorular/<soru_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5dc599c3f3d44b5a", "name": "Unused endpoint: ANY /api/sorular/tumunu-sil", "shortDescription": {"text": "Unused endpoint: ANY /api/sorular/tumunu-sil"}, "fullDescription": {"text": "`app.py` declares `ANY /api/sorular/tumunu-sil` 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-1287243b4edc9ae4", "name": "Unused endpoint: ANY /api/sorular/uygula", "shortDescription": {"text": "Unused endpoint: ANY /api/sorular/uygula"}, "fullDescription": {"text": "`app.py` declares `ANY /api/sorular/uygula` 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-192d86f1c0b30ff2", "name": "Unused endpoint: ANY /api/sorular/paylasim", "shortDescription": {"text": "Unused endpoint: ANY /api/sorular/paylasim"}, "fullDescription": {"text": "`app.py` declares `ANY /api/sorular/paylasim` 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-af03531fe94df633", "name": "Unused endpoint: ANY /api/prompts", "shortDescription": {"text": "Unused endpoint: ANY /api/prompts"}, "fullDescription": {"text": "`app.py` declares `ANY /api/prompts` 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-d832375d6d5b034e", "name": "Unused endpoint: ANY /api/prompts/<skill_id>", "shortDescription": {"text": "Unused endpoint: ANY /api/prompts/<skill_id>"}, "fullDescription": {"text": "`app.py` declares `ANY /api/prompts/<skill_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d4abd2fa12e6ea10", "name": "Unused endpoint: ANY /api/prompts/<skill_id>/reset", "shortDescription": {"text": "Unused endpoint: ANY /api/prompts/<skill_id>/reset"}, "fullDescription": {"text": "`app.py` declares `ANY /api/prompts/<skill_id>/reset` 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-f503ce239498e32f", "name": "Unused endpoint: ANY /api/approve-teknik", "shortDescription": {"text": "Unused endpoint: ANY /api/approve-teknik"}, "fullDescription": {"text": "`app.py` declares `ANY /api/approve-teknik` 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-1ed366fafebc87eb", "name": "Unused endpoint: ANY /api/approve-teknik-no-jira", "shortDescription": {"text": "Unused endpoint: ANY /api/approve-teknik-no-jira"}, "fullDescription": {"text": "`app.py` declares `ANY /api/approve-teknik-no-jira` 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-718a28e99691e18a", "name": "Unused endpoint: ANY /api/reject-teknik", "shortDescription": {"text": "Unused endpoint: ANY /api/reject-teknik"}, "fullDescription": {"text": "`app.py` declares `ANY /api/reject-teknik` 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/21841"}, "properties": {"repository": "ugurcangir-design/Analysys_Agent", "repoUrl": "https://github.com/ugurcangir-design/Analysys_Agent", "branch": "main"}, "results": [{"ruleId": "scanner-0c70b4c0ab65c9a9", "level": "note", "message": {"text": "Possibly dead Python function: cmd_surec"}, "properties": {"repobilityId": "83c1fc602a23c145", "scanner": "scanner-primary", "fingerprint": "0c70b4c0ab65c9a9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cli.py:107"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-962586e6e5d9d07b", "level": "note", "message": {"text": "Possibly dead Python function: cmd_brd"}, "properties": {"repobilityId": "74fab5ab2c411542", "scanner": "scanner-primary", "fingerprint": "962586e6e5d9d07b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cli.py:132"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bc4ba8fdeecf649c", "level": "note", "message": {"text": "Possibly dead Python function: cmd_rerun"}, "properties": {"repobilityId": "06f3af4009562e06", "scanner": "scanner-primary", "fingerprint": "bc4ba8fdeecf649c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cli.py:162"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-536119f495793676", "level": "note", "message": {"text": "Possibly dead Python function: cmd_ui"}, "properties": {"repobilityId": "86428ca59986c40a", "scanner": "scanner-primary", "fingerprint": "536119f495793676", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cli.py:184"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8c23cc98bcbabb76", "level": "note", "message": {"text": "Possibly dead Python function: calistir_surec_analizi"}, "properties": {"repobilityId": "6d3705fcae7fe349", "scanner": "scanner-primary", "fingerprint": "8c23cc98bcbabb76", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "run.py:45"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fe82644b9c4e7a04", "level": "note", "message": {"text": "Possibly dead Python function: calistir_teknik_analiz"}, "properties": {"repobilityId": "776cacffd8621395", "scanner": "scanner-primary", "fingerprint": "fe82644b9c4e7a04", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "run.py:55"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-58071b0059ac2002", "level": "note", "message": {"text": "Possibly dead Python function: calistir_brd_analizi"}, "properties": {"repobilityId": "0019d86ff3b8b614", "scanner": "scanner-primary", "fingerprint": "58071b0059ac2002", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "run.py:65"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3d631fcb82dde6ad", "level": "note", "message": {"text": "Possibly dead Python function: calistir_kapsam_analizi"}, "properties": {"repobilityId": "ab6869a55a20193b", "scanner": "scanner-primary", "fingerprint": "3d631fcb82dde6ad", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "run.py:75"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f654a886f358769f", "level": "note", "message": {"text": "Possibly dead Python function: calistir_jira_gonder"}, "properties": {"repobilityId": "37262dd9e3816a82", "scanner": "scanner-primary", "fingerprint": "f654a886f358769f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "run.py:86"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b8ea481463681643", "level": "note", "message": {"text": "Possibly dead Python function: jira_tasks_olustur"}, "properties": {"repobilityId": "94655328066edadb", "scanner": "scanner-primary", "fingerprint": "b8ea481463681643", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/jira_tasks.py:360"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-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-906ef58f3bb32754", "level": "note", "message": {"text": "Very large file: app.py (2517 lines)"}, "properties": {"repobilityId": "5a74e6652f3a10d4", "scanner": "scanner-primary", "fingerprint": "906ef58f3bb32754", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4b5278376b3a387d", "level": "note", "message": {"text": "Very large file: skills/base.py (1974 lines)"}, "properties": {"repobilityId": "14003c940a27a3f7", "scanner": "scanner-primary", "fingerprint": "4b5278376b3a387d", "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-5b99d1a3a09b1419", "level": "note", "message": {"text": "32 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "5b99d1a3a09b1419", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "1e1e8ed10bcbe0f9", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-faccb9061e9b52a0", "level": "note", "message": {"text": "No README detected"}, "properties": {"repobilityId": "84853470e437047d", "scanner": "scanner-primary", "fingerprint": "faccb9061e9b52a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "93bce0fa20c4b144", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "60932e9d6aa0976f", "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": "9fff8e4eae229a55", "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": "b4eb24b3f70c3c76", "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": "0479f543bf3ad931", "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": "e7c943817ec1c261", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-cc55229a7a3c078d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .mcp.json"}, "properties": {"repobilityId": "51942fb3d5b8b5b4", "scanner": "scanner-primary", "fingerprint": "cc55229a7a3c078d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "mcp_config"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".mcp.json"}, "region": {"startLine": 1}}}]}, {"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-021165c70628d879", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/atlassian-sync/SKILL.md"}, "properties": {"repobilityId": "1b6639928a6c87fb", "scanner": "scanner-primary", "fingerprint": "021165c70628d879", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/atlassian-sync/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6a0a18849342ba0c", "level": "none", "message": {"text": "Commented-code block (6 lines) in app.py:368"}, "properties": {"repobilityId": "bbba79d43c8de321", "scanner": "scanner-primary", "fingerprint": "6a0a18849342ba0c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c655d3d005d412c", "level": "none", "message": {"text": "Commented-code block (10 lines) in skills/base.py:1803"}, "properties": {"repobilityId": "3920db194d6cd8b1", "scanner": "scanner-primary", "fingerprint": "7c655d3d005d412c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0b5e7cb1208a7cd", "level": "note", "message": {"text": "13 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "2737b8666c1f7eeb", "scanner": "scanner-primary", "fingerprint": "b0b5e7cb1208a7cd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-0be29a465de78616", "level": "error", "message": {"text": "Flask mutation route `heartbeat` without `@login_required` \u2014 app.py:620"}, "properties": {"repobilityId": "37e38f65097b5db9", "scanner": "scanner-primary", "fingerprint": "0be29a465de78616", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 620}}}]}, {"ruleId": "scanner-09449ccece9bef6b", "level": "error", "message": {"text": "Flask mutation route `guncelle` without `@login_required` \u2014 app.py:641"}, "properties": {"repobilityId": "ee21b569229139e7", "scanner": "scanner-primary", "fingerprint": "09449ccece9bef6b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 641}}}]}, {"ruleId": "scanner-a534edccd0f558ad", "level": "error", "message": {"text": "Flask mutation route `shutdown` without `@login_required` \u2014 app.py:678"}, "properties": {"repobilityId": "85099875d1adabb1", "scanner": "scanner-primary", "fingerprint": "a534edccd0f558ad", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 678}}}]}, {"ruleId": "scanner-a61e82f5888d91a2", "level": "error", "message": {"text": "Flask mutation route `upload` without `@login_required` \u2014 app.py:698"}, "properties": {"repobilityId": "f4459c60fedf12ca", "scanner": "scanner-primary", "fingerprint": "a61e82f5888d91a2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 698}}}]}, {"ruleId": "scanner-7cc6e72431900cad", "level": "error", "message": {"text": "Flask mutation route `run` without `@login_required` \u2014 app.py:737"}, "properties": {"repobilityId": "ec3aa691731b2de1", "scanner": "scanner-primary", "fingerprint": "7cc6e72431900cad", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 737}}}]}, {"ruleId": "scanner-1591e9e23ffd976d", "level": "error", "message": {"text": "Flask mutation route `run_teknik` without `@login_required` \u2014 app.py:767"}, "properties": {"repobilityId": "89e00a9cafd6cf32", "scanner": "scanner-primary", "fingerprint": "1591e9e23ffd976d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 767}}}]}, {"ruleId": "scanner-14c60eecafa07a7f", "level": "error", "message": {"text": "Flask mutation route `approve` without `@login_required` \u2014 app.py:804"}, "properties": {"repobilityId": "70d6dd884602f025", "scanner": "scanner-primary", "fingerprint": "14c60eecafa07a7f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 804}}}]}, {"ruleId": "scanner-f1046fadc0466de3", "level": "error", "message": {"text": "Flask mutation route `reject` without `@login_required` \u2014 app.py:817"}, "properties": {"repobilityId": "a7dcf1f5903e016d", "scanner": "scanner-primary", "fingerprint": "f1046fadc0466de3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 817}}}]}, {"ruleId": "scanner-830248b2b1613f7d", "level": "error", "message": {"text": "Flask mutation route `upload_revised_brd` without `@login_required` \u2014 app.py:829"}, "properties": {"repobilityId": "cf971d391ad8d9a5", "scanner": "scanner-primary", "fingerprint": "830248b2b1613f7d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 829}}}]}, {"ruleId": "scanner-390e086823c5f941", "level": "error", "message": {"text": "Flask mutation route `skip_kapsam` without `@login_required` \u2014 app.py:862"}, "properties": {"repobilityId": "38198d9c1cb6a70a", "scanner": "scanner-primary", "fingerprint": "390e086823c5f941", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 862}}}]}, {"ruleId": "scanner-47a17f1e878fe486", "level": "error", "message": {"text": "Flask mutation route `reset` without `@login_required` \u2014 app.py:886"}, "properties": {"repobilityId": "8ad88c7b97c53a03", "scanner": "scanner-primary", "fingerprint": "47a17f1e878fe486", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 886}}}]}, {"ruleId": "scanner-44526f08749833a6", "level": "error", "message": {"text": "Flask mutation route `output_sil` without `@login_required` \u2014 app.py:908"}, "properties": {"repobilityId": "280fb29e754e7061", "scanner": "scanner-primary", "fingerprint": "44526f08749833a6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 908}}}]}, {"ruleId": "scanner-4b646b4e77a9143c", "level": "error", "message": {"text": "Flask mutation route `save_history` without `@login_required` \u2014 app.py:961"}, "properties": {"repobilityId": "524dffc7eaa85091", "scanner": "scanner-primary", "fingerprint": "4b646b4e77a9143c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 961}}}]}, {"ruleId": "scanner-96c9387dce570b6f", "level": "error", "message": {"text": "Flask mutation route `upload_ui_project` without `@login_required` \u2014 app.py:1038"}, "properties": {"repobilityId": "6dc27f1b8a62f140", "scanner": "scanner-primary", "fingerprint": "96c9387dce570b6f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1038}}}]}, {"ruleId": "scanner-c57217e539bca19c", "level": "error", "message": {"text": "Flask mutation route `upload_ui_code` without `@login_required` \u2014 app.py:1079"}, "properties": {"repobilityId": "45d6f133ce12a20a", "scanner": "scanner-primary", "fingerprint": "c57217e539bca19c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1079}}}]}, {"ruleId": "scanner-91dbddf47dd5af6a", "level": "error", "message": {"text": "Flask mutation route `ui_file_sil` without `@login_required` \u2014 app.py:1136"}, "properties": {"repobilityId": "a69cf5b73a5ea014", "scanner": "scanner-primary", "fingerprint": "91dbddf47dd5af6a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1136}}}]}, {"ruleId": "scanner-5f1e57626c0a54fc", "level": "error", "message": {"text": "Flask mutation route `ui_files_temizle` without `@login_required` \u2014 app.py:1155"}, "properties": {"repobilityId": "39e76afbd8f5b8c4", "scanner": "scanner-primary", "fingerprint": "5f1e57626c0a54fc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1155}}}]}, {"ruleId": "scanner-01c02809d14eab92", "level": "error", "message": {"text": "Flask mutation route `save_output` without `@login_required` \u2014 app.py:1164"}, "properties": {"repobilityId": "90e7d1d039d1384b", "scanner": "scanner-primary", "fingerprint": "01c02809d14eab92", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1164}}}]}, {"ruleId": "scanner-179620c6118ec7e1", "level": "error", "message": {"text": "Flask mutation route `rerun` without `@login_required` \u2014 app.py:1182"}, "properties": {"repobilityId": "dc0aef1b0380247c", "scanner": "scanner-primary", "fingerprint": "179620c6118ec7e1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1182}}}]}, {"ruleId": "scanner-655c61025ae4301e", "level": "error", "message": {"text": "Flask mutation route `auth_login` without `@login_required` \u2014 app.py:1293"}, "properties": {"repobilityId": "06cea17889e44909", "scanner": "scanner-primary", "fingerprint": "655c61025ae4301e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1293}}}]}, {"ruleId": "scanner-566f07547eda219e", "level": "error", "message": {"text": "Flask mutation route `auth_logout` without `@login_required` \u2014 app.py:1317"}, "properties": {"repobilityId": "81ad156778dd98c9", "scanner": "scanner-primary", "fingerprint": "566f07547eda219e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1317}}}]}, {"ruleId": "scanner-79286a599008ccaf", "level": "error", "message": {"text": "Flask mutation route `kullanici_ekle` without `@login_required` \u2014 app.py:1340"}, "properties": {"repobilityId": "516408c3af3b08cb", "scanner": "scanner-primary", "fingerprint": "79286a599008ccaf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1340}}}]}, {"ruleId": "scanner-4ff5fea4b832f029", "level": "error", "message": {"text": "Flask mutation route `kullanici_sil` without `@login_required` \u2014 app.py:1362"}, "properties": {"repobilityId": "6e53dd02be4b2635", "scanner": "scanner-primary", "fingerprint": "4ff5fea4b832f029", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1362}}}]}, {"ruleId": "scanner-8930739d1342fe07", "level": "error", "message": {"text": "Flask mutation route `kullanici_sifre_degistir` without `@login_required` \u2014 app.py:1378"}, "properties": {"repobilityId": "67a3e6e06bc3027e", "scanner": "scanner-primary", "fingerprint": "8930739d1342fe07", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1378}}}]}, {"ruleId": "scanner-642fec04d59eea52", "level": "error", "message": {"text": "Flask mutation route `settings_kaydet` without `@login_required` \u2014 app.py:1411"}, "properties": {"repobilityId": "f0858d744541220c", "scanner": "scanner-primary", "fingerprint": "642fec04d59eea52", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1411}}}]}, {"ruleId": "scanner-2671cd52937f38a5", "level": "error", "message": {"text": "Flask mutation route `sorular_parse` without `@login_required` \u2014 app.py:1466"}, "properties": {"repobilityId": "3ea7b183c2643f14", "scanner": "scanner-primary", "fingerprint": "2671cd52937f38a5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1466}}}]}, {"ruleId": "scanner-1a11fd7128fdfa60", "level": "error", "message": {"text": "Flask mutation route `soru_guncelle_endpoint` without `@login_required` \u2014 app.py:1478"}, "properties": {"repobilityId": "ddc3f5e9f3091882", "scanner": "scanner-primary", "fingerprint": "1a11fd7128fdfa60", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1478}}}]}, {"ruleId": "scanner-0877fb78959e5aea", "level": "error", "message": {"text": "Flask mutation route `soru_sil_endpoint` without `@login_required` \u2014 app.py:1507"}, "properties": {"repobilityId": "bfa3414fac530735", "scanner": "scanner-primary", "fingerprint": "0877fb78959e5aea", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1507}}}]}, {"ruleId": "scanner-5751aa5f4ed26d3f", "level": "error", "message": {"text": "Flask mutation route `sorular_tumunu_sil` without `@login_required` \u2014 app.py:1522"}, "properties": {"repobilityId": "1799c426843e8976", "scanner": "scanner-primary", "fingerprint": "5751aa5f4ed26d3f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1522}}}]}, {"ruleId": "scanner-e4c839e6a867557b", "level": "error", "message": {"text": "Flask mutation route `sorular_uygula` without `@login_required` \u2014 app.py:1543"}, "properties": {"repobilityId": "faff750d4bcc3071", "scanner": "scanner-primary", "fingerprint": "e4c839e6a867557b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1543}}}]}, {"ruleId": "scanner-25382be29fc2d6ae", "level": "error", "message": {"text": "Flask mutation route `prompt_guncelle` without `@login_required` \u2014 app.py:1644"}, "properties": {"repobilityId": "b664d75fe71c1580", "scanner": "scanner-primary", "fingerprint": "25382be29fc2d6ae", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1644}}}]}, {"ruleId": "scanner-b2dba4c0570ed11b", "level": "error", "message": {"text": "Flask mutation route `prompt_sifirla_route` without `@login_required` \u2014 app.py:1659"}, "properties": {"repobilityId": "0e3c78356ed91781", "scanner": "scanner-primary", "fingerprint": "b2dba4c0570ed11b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1659}}}]}, {"ruleId": "scanner-08fa8caa525762bd", "level": "error", "message": {"text": "Flask mutation route `approve_teknik` without `@login_required` \u2014 app.py:1672"}, "properties": {"repobilityId": "7dd02ea248a3c2fe", "scanner": "scanner-primary", "fingerprint": "08fa8caa525762bd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1672}}}]}, {"ruleId": "scanner-5aa32597893ced6f", "level": "error", "message": {"text": "Flask mutation route `approve_teknik_no_jira` without `@login_required` \u2014 app.py:1684"}, "properties": {"repobilityId": "81a1451a51c85c78", "scanner": "scanner-primary", "fingerprint": "5aa32597893ced6f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1684}}}]}, {"ruleId": "scanner-5296af74456a20bb", "level": "error", "message": {"text": "Flask mutation route `reject_teknik` without `@login_required` \u2014 app.py:1695"}, "properties": {"repobilityId": "d315e23dd6dad344", "scanner": "scanner-primary", "fingerprint": "5296af74456a20bb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1695}}}]}, {"ruleId": "scanner-f9c7d6db8e9d2c37", "level": "error", "message": {"text": "Flask mutation route `reference_upload` without `@login_required` \u2014 app.py:1731"}, "properties": {"repobilityId": "4e84c12773254ebd", "scanner": "scanner-primary", "fingerprint": "f9c7d6db8e9d2c37", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1731}}}]}, {"ruleId": "scanner-83849f692d883d5c", "level": "error", "message": {"text": "Flask mutation route `reference_delete` without `@login_required` \u2014 app.py:1768"}, "properties": {"repobilityId": "93c9e9a8fbd0d936", "scanner": "scanner-primary", "fingerprint": "83849f692d883d5c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1768}}}]}, {"ruleId": "scanner-22d81647e44304fc", "level": "error", "message": {"text": "Flask mutation route `sources_confluence_ekle` without `@login_required` \u2014 app.py:1815"}, "properties": {"repobilityId": "a350bb811db0b5a9", "scanner": "scanner-primary", "fingerprint": "22d81647e44304fc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1815}}}]}, {"ruleId": "scanner-25be7289e07868d0", "level": "error", "message": {"text": "Flask mutation route `sources_confluence_sil` without `@login_required` \u2014 app.py:1829"}, "properties": {"repobilityId": "df6b01644520231a", "scanner": "scanner-primary", "fingerprint": "25be7289e07868d0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1829}}}]}, {"ruleId": "scanner-0642c68265793967", "level": "error", "message": {"text": "Flask mutation route `sources_jira_ekle` without `@login_required` \u2014 app.py:1837"}, "properties": {"repobilityId": "760e6c50c46670a2", "scanner": "scanner-primary", "fingerprint": "0642c68265793967", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1837}}}]}, {"ruleId": "scanner-e3ea0bb7d5713a2f", "level": "error", "message": {"text": "Flask mutation route `sources_jira_sil` without `@login_required` \u2014 app.py:1851"}, "properties": {"repobilityId": "2b0ff05d43e11e91", "scanner": "scanner-primary", "fingerprint": "e3ea0bb7d5713a2f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1851}}}]}, {"ruleId": "scanner-be7656b233bedf3f", "level": "error", "message": {"text": "Flask mutation route `sources_sync_baslat` without `@login_required` \u2014 app.py:1870"}, "properties": {"repobilityId": "96148a7ed1ffb36f", "scanner": "scanner-primary", "fingerprint": "be7656b233bedf3f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1870}}}]}, {"ruleId": "scanner-b01ae53dde89040c", "level": "error", "message": {"text": "Flask mutation route `reference_fetch_be` without `@login_required` \u2014 app.py:1928"}, "properties": {"repobilityId": "29ea7f75c45ebd00", "scanner": "scanner-primary", "fingerprint": "b01ae53dde89040c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1928}}}]}, {"ruleId": "scanner-38f786dde1878b77", "level": "error", "message": {"text": "Flask mutation route `context_filter_kaydet` without `@login_required` \u2014 app.py:1984"}, "properties": {"repobilityId": "b27e1b11c8826244", "scanner": "scanner-primary", "fingerprint": "38f786dde1878b77", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 1984}}}]}, {"ruleId": "scanner-0b4aa4c29451572e", "level": "error", "message": {"text": "Flask mutation route `jira_config_kaydet` without `@login_required` \u2014 app.py:2017"}, "properties": {"repobilityId": "f4d6197f71065e04", "scanner": "scanner-primary", "fingerprint": "0b4aa4c29451572e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 2017}}}]}, {"ruleId": "scanner-58cfdedb2fd99c9e", "level": "error", "message": {"text": "Flask mutation route `jira_auth_url` without `@login_required` \u2014 app.py:2042"}, "properties": {"repobilityId": "2d0b0ffd8c7882e5", "scanner": "scanner-primary", "fingerprint": "58cfdedb2fd99c9e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 2042}}}]}, {"ruleId": "scanner-2c4e1a317fd33eb1", "level": "error", "message": {"text": "Flask mutation route `jira_test` without `@login_required` \u2014 app.py:2101"}, "properties": {"repobilityId": "8c0a6bf6ddd4ef73", "scanner": "scanner-primary", "fingerprint": "2c4e1a317fd33eb1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 2101}}}]}, {"ruleId": "scanner-de4eb94ca6579eec", "level": "error", "message": {"text": "Flask mutation route `jira_hierarchy_onizleme` without `@login_required` \u2014 app.py:2129"}, "properties": {"repobilityId": "dbec5359cca20097", "scanner": "scanner-primary", "fingerprint": "de4eb94ca6579eec", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 2129}}}]}, {"ruleId": "scanner-1b45f77f2bcaafb3", "level": "error", "message": {"text": "Flask mutation route `jira_hierarchy_olustur` without `@login_required` \u2014 app.py:2154"}, "properties": {"repobilityId": "d2aafa777ce28179", "scanner": "scanner-primary", "fingerprint": "1b45f77f2bcaafb3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 2154}}}]}, {"ruleId": "scanner-09dad688e8bf2d47", "level": "error", "message": {"text": "Flask mutation route `confluence_yayimla_route` without `@login_required` \u2014 app.py:2179"}, "properties": {"repobilityId": "ec80f49e8b64df23", "scanner": "scanner-primary", "fingerprint": "09dad688e8bf2d47", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 2179}}}]}, {"ruleId": "scanner-7ca1b3a4d5f5b50b", "level": "error", "message": {"text": "Flask mutation route `mockup_generate` without `@login_required` \u2014 app.py:2291"}, "properties": {"repobilityId": "05f0f8bfcc411e03", "scanner": "scanner-primary", "fingerprint": "7ca1b3a4d5f5b50b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 2291}}}]}, {"ruleId": "scanner-1e135c1f8bc9c1c8", "level": "error", "message": {"text": "Flask mutation route `git_pull` without `@login_required` \u2014 app.py:2389"}, "properties": {"repobilityId": "c19b816116ab8eba", "scanner": "scanner-primary", "fingerprint": "1e135c1f8bc9c1c8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app.py"}, "region": {"startLine": 2389}}}]}, {"ruleId": "scanner-1a6d91f2236825bf", "level": "note", "message": {"text": "Unused endpoint: ANY /"}, "properties": {"repobilityId": "302fe621a396c5fd", "scanner": "scanner-primary", "fingerprint": "1a6d91f2236825bf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e753ea09f0dc24c1", "level": "note", "message": {"text": "Unused endpoint: ANY /kilavuz"}, "properties": {"repobilityId": "93da8bbf689da7bd", "scanner": "scanner-primary", "fingerprint": "e753ea09f0dc24c1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-34445a5542caa0de", "level": "note", "message": {"text": "Unused endpoint: ANY /api/heartbeat"}, "properties": {"repobilityId": "86b5cd9b138ca5f1", "scanner": "scanner-primary", "fingerprint": "34445a5542caa0de", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-02cb834e223ca635", "level": "note", "message": {"text": "Unused endpoint: ANY /api/version"}, "properties": {"repobilityId": "31e9cac31098a5e6", "scanner": "scanner-primary", "fingerprint": "02cb834e223ca635", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-850a37057ed07911", "level": "note", "message": {"text": "Unused endpoint: ANY /api/update"}, "properties": {"repobilityId": "c6776ae5ac22a5bd", "scanner": "scanner-primary", "fingerprint": "850a37057ed07911", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-20d17742c7b51734", "level": "note", "message": {"text": "Unused endpoint: ANY /api/shutdown"}, "properties": {"repobilityId": "0c5d0f3a1dedb2fc", "scanner": "scanner-primary", "fingerprint": "20d17742c7b51734", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a71068d583beb700", "level": "note", "message": {"text": "Unused endpoint: ANY /api/workflow-state"}, "properties": {"repobilityId": "826b2228b1cba0c8", "scanner": "scanner-primary", "fingerprint": "a71068d583beb700", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ca7212ab4dc8661b", "level": "note", "message": {"text": "Unused endpoint: ANY /api/upload"}, "properties": {"repobilityId": "68a3c39b1bd4ac56", "scanner": "scanner-primary", "fingerprint": "ca7212ab4dc8661b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9b8d6b0817dd1afa", "level": "note", "message": {"text": "Unused endpoint: ANY /api/run"}, "properties": {"repobilityId": "41644da5568b4abf", "scanner": "scanner-primary", "fingerprint": "9b8d6b0817dd1afa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-149768f0a7dc42ce", "level": "note", "message": {"text": "Unused endpoint: ANY /api/run-teknik"}, "properties": {"repobilityId": "b4b43df5e177a9da", "scanner": "scanner-primary", "fingerprint": "149768f0a7dc42ce", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cd18557e3a5e6b97", "level": "note", "message": {"text": "Unused endpoint: ANY /api/approve"}, "properties": {"repobilityId": "7a75bc3f352d44ea", "scanner": "scanner-primary", "fingerprint": "cd18557e3a5e6b97", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a9efe5298adde8c8", "level": "note", "message": {"text": "Unused endpoint: ANY /api/reject"}, "properties": {"repobilityId": "5ef46d4ade060b9e", "scanner": "scanner-primary", "fingerprint": "a9efe5298adde8c8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-61c8b14238a0ef88", "level": "note", "message": {"text": "Unused endpoint: ANY /api/upload-revised-brd"}, "properties": {"repobilityId": "d3df9c7762441e12", "scanner": "scanner-primary", "fingerprint": "61c8b14238a0ef88", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9a02c92812cbe224", "level": "note", "message": {"text": "Unused endpoint: ANY /api/skip-kapsam"}, "properties": {"repobilityId": "982f11888363bfdb", "scanner": "scanner-primary", "fingerprint": "9a02c92812cbe224", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0c398e3052e32c9c", "level": "note", "message": {"text": "Unused endpoint: ANY /api/reset"}, "properties": {"repobilityId": "afb2f26bc9671509", "scanner": "scanner-primary", "fingerprint": "0c398e3052e32c9c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a7684388c8866a95", "level": "note", "message": {"text": "Unused endpoint: ANY /api/output/<dosya_adi>"}, "properties": {"repobilityId": "11ba3ff1c4af25d5", "scanner": "scanner-primary", "fingerprint": "a7684388c8866a95", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-54dcd39723884333", "level": "note", "message": {"text": "Unused endpoint: ANY /api/output/delete"}, "properties": {"repobilityId": "0ef4d736db6f2c04", "scanner": "scanner-primary", "fingerprint": "54dcd39723884333", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-887ad32ba7cc899c", "level": "note", "message": {"text": "Unused endpoint: ANY /api/outputs"}, "properties": {"repobilityId": "e5bce88742dd1915", "scanner": "scanner-primary", "fingerprint": "887ad32ba7cc899c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-87536038ad543230", "level": "note", "message": {"text": "Unused endpoint: ANY /api/history"}, "properties": {"repobilityId": "bc3417743579336b", "scanner": "scanner-primary", "fingerprint": "87536038ad543230", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f140245ad3b414f4", "level": "note", "message": {"text": "Unused endpoint: ANY /api/history/<arsiv_id>/<dosya_adi>"}, "properties": {"repobilityId": "b9816ae9eca46afa", "scanner": "scanner-primary", "fingerprint": "f140245ad3b414f4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b43811b8a0e3f8b6", "level": "note", "message": {"text": "Unused endpoint: ANY /api/save-history"}, "properties": {"repobilityId": "9338463d11dbb45a", "scanner": "scanner-primary", "fingerprint": "b43811b8a0e3f8b6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b9dc07c5104aaa40", "level": "note", "message": {"text": "Unused endpoint: ANY /api/upload-ui-project"}, "properties": {"repobilityId": "084855a10133b633", "scanner": "scanner-primary", "fingerprint": "b9dc07c5104aaa40", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e7685bfb7e02209b", "level": "note", "message": {"text": "Unused endpoint: ANY /api/upload-ui-code"}, "properties": {"repobilityId": "cc6c68989723c456", "scanner": "scanner-primary", "fingerprint": "e7685bfb7e02209b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0a937fe5107e0e64", "level": "note", "message": {"text": "Unused endpoint: ANY /api/ui-files"}, "properties": {"repobilityId": "3264e1d25c396ea0", "scanner": "scanner-primary", "fingerprint": "0a937fe5107e0e64", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cf72c0a0b2be5f57", "level": "note", "message": {"text": "Unused endpoint: ANY /api/ui-files/content"}, "properties": {"repobilityId": "08dd64c9cabaab8e", "scanner": "scanner-primary", "fingerprint": "cf72c0a0b2be5f57", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7e4def6689cbc249", "level": "note", "message": {"text": "Unused endpoint: ANY /api/ui-files/delete"}, "properties": {"repobilityId": "d2958e08f0cf1925", "scanner": "scanner-primary", "fingerprint": "7e4def6689cbc249", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d2124a3747d2de5e", "level": "note", "message": {"text": "Unused endpoint: ANY /api/ui-files/clear"}, "properties": {"repobilityId": "17e04597c7ab4dc7", "scanner": "scanner-primary", "fingerprint": "d2124a3747d2de5e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-28ed6a2910f4ed03", "level": "note", "message": {"text": "Unused endpoint: ANY /api/save-output"}, "properties": {"repobilityId": "c5e9e8201e96ebc8", "scanner": "scanner-primary", "fingerprint": "28ed6a2910f4ed03", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-788185e7df38fd91", "level": "note", "message": {"text": "Unused endpoint: ANY /api/rerun"}, "properties": {"repobilityId": "177dca77b01bf707", "scanner": "scanner-primary", "fingerprint": "788185e7df38fd91", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c4ad1e5ae13d62f1", "level": "note", "message": {"text": "Unused endpoint: ANY /api/rerun-status/<dosya_adi>"}, "properties": {"repobilityId": "c29d739a62291684", "scanner": "scanner-primary", "fingerprint": "c4ad1e5ae13d62f1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4c7ad61ba1b23915", "level": "note", "message": {"text": "Unused endpoint: ANY /login"}, "properties": {"repobilityId": "2d2d4aa670f43283", "scanner": "scanner-primary", "fingerprint": "4c7ad61ba1b23915", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0bac2999f80dd4ee", "level": "note", "message": {"text": "Unused endpoint: ANY /api/auth/login"}, "properties": {"repobilityId": "28d64a600e0f329b", "scanner": "scanner-primary", "fingerprint": "0bac2999f80dd4ee", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d13e20e9a7adb1cd", "level": "note", "message": {"text": "Unused endpoint: ANY /api/auth/logout"}, "properties": {"repobilityId": "e4bf37bc2fb851d5", "scanner": "scanner-primary", "fingerprint": "d13e20e9a7adb1cd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fcaedbb556396417", "level": "note", "message": {"text": "Unused endpoint: ANY /api/auth/me"}, "properties": {"repobilityId": "810427c4839eee07", "scanner": "scanner-primary", "fingerprint": "fcaedbb556396417", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-33de9c10cc501140", "level": "note", "message": {"text": "Unused endpoint: ANY /api/users"}, "properties": {"repobilityId": "c0d06ec2f968d0bb", "scanner": "scanner-primary", "fingerprint": "33de9c10cc501140", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-06b89185a1d98e85", "level": "note", "message": {"text": "Unused endpoint: ANY /api/users/<username>"}, "properties": {"repobilityId": "a8000f9d15836d6a", "scanner": "scanner-primary", "fingerprint": "06b89185a1d98e85", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-105a8220d4e920f3", "level": "note", "message": {"text": "Unused endpoint: ANY /api/users/<username>/password"}, "properties": {"repobilityId": "f3e3295e203587ba", "scanner": "scanner-primary", "fingerprint": "105a8220d4e920f3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cca8483232bea4f0", "level": "note", "message": {"text": "Unused endpoint: ANY /api/settings"}, "properties": {"repobilityId": "ef2cfcd27820cbca", "scanner": "scanner-primary", "fingerprint": "cca8483232bea4f0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-067b3e8bbbcc41bb", "level": "note", "message": {"text": "Unused endpoint: ANY /api/sorular"}, "properties": {"repobilityId": "520fad4ea799abd5", "scanner": "scanner-primary", "fingerprint": "067b3e8bbbcc41bb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fda3e1fb5369ba47", "level": "note", "message": {"text": "Unused endpoint: ANY /api/sorular/parse"}, "properties": {"repobilityId": "5d78614f6691834e", "scanner": "scanner-primary", "fingerprint": "fda3e1fb5369ba47", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e497da33a7afc54a", "level": "note", "message": {"text": "Unused endpoint: ANY /api/sorular/<soru_id>"}, "properties": {"repobilityId": "96b2561eb9cfeea5", "scanner": "scanner-primary", "fingerprint": "e497da33a7afc54a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5dc599c3f3d44b5a", "level": "note", "message": {"text": "Unused endpoint: ANY /api/sorular/tumunu-sil"}, "properties": {"repobilityId": "e6e6ca1935ccce03", "scanner": "scanner-primary", "fingerprint": "5dc599c3f3d44b5a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1287243b4edc9ae4", "level": "note", "message": {"text": "Unused endpoint: ANY /api/sorular/uygula"}, "properties": {"repobilityId": "7b789fbf38d64636", "scanner": "scanner-primary", "fingerprint": "1287243b4edc9ae4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-192d86f1c0b30ff2", "level": "note", "message": {"text": "Unused endpoint: ANY /api/sorular/paylasim"}, "properties": {"repobilityId": "7b119c869afa99a0", "scanner": "scanner-primary", "fingerprint": "192d86f1c0b30ff2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-af03531fe94df633", "level": "note", "message": {"text": "Unused endpoint: ANY /api/prompts"}, "properties": {"repobilityId": "8cd9ea2267325c3d", "scanner": "scanner-primary", "fingerprint": "af03531fe94df633", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d832375d6d5b034e", "level": "note", "message": {"text": "Unused endpoint: ANY /api/prompts/<skill_id>"}, "properties": {"repobilityId": "959bc0467d7092b7", "scanner": "scanner-primary", "fingerprint": "d832375d6d5b034e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d4abd2fa12e6ea10", "level": "note", "message": {"text": "Unused endpoint: ANY /api/prompts/<skill_id>/reset"}, "properties": {"repobilityId": "0b6e4bef0a5ccdd1", "scanner": "scanner-primary", "fingerprint": "d4abd2fa12e6ea10", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f503ce239498e32f", "level": "note", "message": {"text": "Unused endpoint: ANY /api/approve-teknik"}, "properties": {"repobilityId": "f8b9663c98bdaebb", "scanner": "scanner-primary", "fingerprint": "f503ce239498e32f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1ed366fafebc87eb", "level": "note", "message": {"text": "Unused endpoint: ANY /api/approve-teknik-no-jira"}, "properties": {"repobilityId": "71121f94e0ff91cb", "scanner": "scanner-primary", "fingerprint": "1ed366fafebc87eb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-718a28e99691e18a", "level": "note", "message": {"text": "Unused endpoint: ANY /api/reject-teknik"}, "properties": {"repobilityId": "1e4da6835584fdd9", "scanner": "scanner-primary", "fingerprint": "718a28e99691e18a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}