{"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-10c0a0b630ebe075", "name": "Stray `console.log` in TS/JS \u2014 test/gateway-e2e.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/gateway-e2e.js:12"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d5d0616bc5bc2d88", "name": "Stray `console.log` in TS/JS \u2014 test/frontend-protocol-e2e.js:9", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/frontend-protocol-e2e.js:9"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5a95450e6c0c3473", "name": "Stray `console.log` in TS/JS \u2014 test/social-e2e.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/social-e2e.js:15"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-40dec0c4e7d045b5", "name": "Stray `console.log` in TS/JS \u2014 src/main.ts:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/main.ts:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b92a476d224a326b", "name": "Possible secret in test/frontend-protocol-e2e.js", "shortDescription": {"text": "Possible secret in test/frontend-protocol-e2e.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-2539c4d755fb4c55", "name": "Possible secret in test/social-e2e.js", "shortDescription": {"text": "Possible secret in test/social-e2e.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-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-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "3 test file(s) for 46 source file(s) (ratio 0.07). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci, 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-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-ec8e0c103ddeebd3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 test/gateway-e2e.js:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/gateway-e2e.js:23"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ec064e7c887ea72d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 test/frontend-protocol-e2e.js:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/frontend-protocol-e2e.js:13"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f808a4ef3e1071fb", "name": "14 env vars used in code but missing from .env.example", "shortDescription": {"text": "14 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `BASE`, `EMAIL_A`, `EMAIL_B`, `MAIL_FROM`, `PASSWORD`, `SIOC_PATH`, `SMTP_HOST`, `SMTP_PASS` + 6 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-53cdcee6144e106a", "name": "Unused endpoint: GET /api/users/me", "shortDescription": {"text": "Unused endpoint: GET /api/users/me"}, "fullDescription": {"text": "`src/users/users.controller.ts` declares `GET /api/users/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-9d1f422281bc067d", "name": "Unused endpoint: GET /api/users/me/settings", "shortDescription": {"text": "Unused endpoint: GET /api/users/me/settings"}, "fullDescription": {"text": "`src/users/users.controller.ts` declares `GET /api/users/me/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-ae92b3ec8c4b354d", "name": "Unused endpoint: GET /api/users/me/checkin", "shortDescription": {"text": "Unused endpoint: GET /api/users/me/checkin"}, "fullDescription": {"text": "`src/users/users.controller.ts` declares `GET /api/users/me/checkin` 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-8dc2e874eee47d0b", "name": "Unused endpoint: POST /api/users/me/checkin", "shortDescription": {"text": "Unused endpoint: POST /api/users/me/checkin"}, "fullDescription": {"text": "`src/users/users.controller.ts` declares `POST /api/users/me/checkin` 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-f1488b58186c0f40", "name": "Unused endpoint: PUT /api/users/me/settings", "shortDescription": {"text": "Unused endpoint: PUT /api/users/me/settings"}, "fullDescription": {"text": "`src/users/users.controller.ts` declares `PUT /api/users/me/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-24ee758ea12a1267", "name": "Unused endpoint: GET /api/users/:id/profile", "shortDescription": {"text": "Unused endpoint: GET /api/users/:id/profile"}, "fullDescription": {"text": "`src/users/users.controller.ts` declares `GET /api/users/:id/profile` 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-812760b081b9ff1a", "name": "Unused endpoint: GET /api/users/:id", "shortDescription": {"text": "Unused endpoint: GET /api/users/:id"}, "fullDescription": {"text": "`src/users/users.controller.ts` declares `GET /api/users/: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-cb2635b50239d452", "name": "Unused endpoint: PUT /api/users/me", "shortDescription": {"text": "Unused endpoint: PUT /api/users/me"}, "fullDescription": {"text": "`src/users/users.controller.ts` declares `PUT /api/users/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-56377b1244b31f60", "name": "Unused endpoint: PUT /api/users/me/profile", "shortDescription": {"text": "Unused endpoint: PUT /api/users/me/profile"}, "fullDescription": {"text": "`src/users/users.controller.ts` declares `PUT /api/users/me/profile` 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-234d6fb0d99c2982", "name": "Unused endpoint: GET /api/guilds/me", "shortDescription": {"text": "Unused endpoint: GET /api/guilds/me"}, "fullDescription": {"text": "`src/guilds/guilds.controller.ts` declares `GET /api/guilds/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-450c5b918313a627", "name": "Unused endpoint: GET /api/guilds/:id", "shortDescription": {"text": "Unused endpoint: GET /api/guilds/:id"}, "fullDescription": {"text": "`src/guilds/guilds.controller.ts` declares `GET /api/guilds/: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-bc0d93692792eb0c", "name": "Unused endpoint: POST /api/guilds/:id/join", "shortDescription": {"text": "Unused endpoint: POST /api/guilds/:id/join"}, "fullDescription": {"text": "`src/guilds/guilds.controller.ts` declares `POST /api/guilds/:id/join` 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-185bf7d5b4647649", "name": "Unused endpoint: POST /api/guilds/leave", "shortDescription": {"text": "Unused endpoint: POST /api/guilds/leave"}, "fullDescription": {"text": "`src/guilds/guilds.controller.ts` declares `POST /api/guilds/leave` 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-4ce1c4f8af27be71", "name": "Unused endpoint: DELETE /api/guilds/me", "shortDescription": {"text": "Unused endpoint: DELETE /api/guilds/me"}, "fullDescription": {"text": "`src/guilds/guilds.controller.ts` declares `DELETE /api/guilds/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-81a17d2071a539a2", "name": "Unused endpoint: DELETE /api/guilds/members/:userId", "shortDescription": {"text": "Unused endpoint: DELETE /api/guilds/members/:userId"}, "fullDescription": {"text": "`src/guilds/guilds.controller.ts` declares `DELETE /api/guilds/members/:userId` 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-bf283f4220806bdd", "name": "Unused endpoint: PUT /api/guilds/members/:userId/role", "shortDescription": {"text": "Unused endpoint: PUT /api/guilds/members/:userId/role"}, "fullDescription": {"text": "`src/guilds/guilds.controller.ts` declares `PUT /api/guilds/members/:userId/role` 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-a5b3437e64c8f7b4", "name": "Unused endpoint: POST /api/auth/register", "shortDescription": {"text": "Unused endpoint: POST /api/auth/register"}, "fullDescription": {"text": "`src/auth/auth.controller.ts` declares `POST /api/auth/register` 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-fd55aa0818a7c897", "name": "Unused endpoint: POST /api/auth/login", "shortDescription": {"text": "Unused endpoint: POST /api/auth/login"}, "fullDescription": {"text": "`src/auth/auth.controller.ts` declares `POST /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-27400df70d317884", "name": "Unused endpoint: GET /api/auth/email/status", "shortDescription": {"text": "Unused endpoint: GET /api/auth/email/status"}, "fullDescription": {"text": "`src/auth/auth.controller.ts` declares `GET /api/auth/email/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ccc27a6b45f7e705", "name": "Unused endpoint: POST /api/auth/email/send-code", "shortDescription": {"text": "Unused endpoint: POST /api/auth/email/send-code"}, "fullDescription": {"text": "`src/auth/auth.controller.ts` declares `POST /api/auth/email/send-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-88a2c42a825b8c89", "name": "Unused endpoint: POST /api/auth/email/verify", "shortDescription": {"text": "Unused endpoint: POST /api/auth/email/verify"}, "fullDescription": {"text": "`src/auth/auth.controller.ts` declares `POST /api/auth/email/verify` 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-4a382abbdc1fc2d6", "name": "Unused endpoint: POST /api/auth/password/reset", "shortDescription": {"text": "Unused endpoint: POST /api/auth/password/reset"}, "fullDescription": {"text": "`src/auth/auth.controller.ts` declares `POST /api/auth/password/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-214b38c070d14346", "name": "Unused endpoint: POST /api/auth/password/change", "shortDescription": {"text": "Unused endpoint: POST /api/auth/password/change"}, "fullDescription": {"text": "`src/auth/auth.controller.ts` declares `POST /api/auth/password/change` 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-53f9362b3afda122", "name": "Unused endpoint: GET /api/plazas/me", "shortDescription": {"text": "Unused endpoint: GET /api/plazas/me"}, "fullDescription": {"text": "`src/plazas/plazas.controller.ts` declares `GET /api/plazas/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-5b3580cd5fd6c967", "name": "Unused endpoint: GET /api/plazas/user/:userId", "shortDescription": {"text": "Unused endpoint: GET /api/plazas/user/:userId"}, "fullDescription": {"text": "`src/plazas/plazas.controller.ts` declares `GET /api/plazas/user/:userId` 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-43b354e9752c983b", "name": "Unused endpoint: GET /api/plazas/:id", "shortDescription": {"text": "Unused endpoint: GET /api/plazas/:id"}, "fullDescription": {"text": "`src/plazas/plazas.controller.ts` declares `GET /api/plazas/: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-cf6d1e8433aafe34", "name": "Unused endpoint: POST /api/plazas/:id/join", "shortDescription": {"text": "Unused endpoint: POST /api/plazas/:id/join"}, "fullDescription": {"text": "`src/plazas/plazas.controller.ts` declares `POST /api/plazas/:id/join` 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-ac054032d686e176", "name": "Unused endpoint: POST /api/plazas/:id/leave", "shortDescription": {"text": "Unused endpoint: POST /api/plazas/:id/leave"}, "fullDescription": {"text": "`src/plazas/plazas.controller.ts` declares `POST /api/plazas/:id/leave` 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-6ba19aed30131162", "name": "Unused endpoint: PUT /api/plazas/:id/decorations", "shortDescription": {"text": "Unused endpoint: PUT /api/plazas/:id/decorations"}, "fullDescription": {"text": "`src/plazas/plazas.controller.ts` declares `PUT /api/plazas/:id/decorations` 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-9259f49c0e71428a", "name": "Unused endpoint: GET /api/users/me/items", "shortDescription": {"text": "Unused endpoint: GET /api/users/me/items"}, "fullDescription": {"text": "`src/items/items.controller.ts` declares `GET /api/users/me/items` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-672039986eb52a93", "name": "Unused endpoint: POST /api/items/:id/purchase", "shortDescription": {"text": "Unused endpoint: POST /api/items/:id/purchase"}, "fullDescription": {"text": "`src/items/items.controller.ts` declares `POST /api/items/:id/purchase` 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-b3b8504f5c20dfbf", "name": "Unused endpoint: GET /api/friends/requests", "shortDescription": {"text": "Unused endpoint: GET /api/friends/requests"}, "fullDescription": {"text": "`src/friends/friends.controller.ts` declares `GET /api/friends/requests` 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-3f2727de1ee5f20d", "name": "Unused endpoint: POST /api/friends/requests", "shortDescription": {"text": "Unused endpoint: POST /api/friends/requests"}, "fullDescription": {"text": "`src/friends/friends.controller.ts` declares `POST /api/friends/requests` 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-16807aef732c7af7", "name": "Unused endpoint: POST /api/friends/requests/:id/accept", "shortDescription": {"text": "Unused endpoint: POST /api/friends/requests/:id/accept"}, "fullDescription": {"text": "`src/friends/friends.controller.ts` declares `POST /api/friends/requests/:id/accept` 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-fb388d00ed945121", "name": "Unused endpoint: POST /api/friends/requests/:id/reject", "shortDescription": {"text": "Unused endpoint: POST /api/friends/requests/:id/reject"}, "fullDescription": {"text": "`src/friends/friends.controller.ts` declares `POST /api/friends/requests/:id/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-7a1eb7e1f839ebc6", "name": "Unused endpoint: DELETE /api/friends/requests/:id", "shortDescription": {"text": "Unused endpoint: DELETE /api/friends/requests/:id"}, "fullDescription": {"text": "`src/friends/friends.controller.ts` declares `DELETE /api/friends/requests/: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-295d8234b72b9595", "name": "Unused endpoint: DELETE /api/friends/:userId", "shortDescription": {"text": "Unused endpoint: DELETE /api/friends/:userId"}, "fullDescription": {"text": "`src/friends/friends.controller.ts` declares `DELETE /api/friends/:userId` 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-f0b66be8863143c7", "name": "Unused endpoint: GET /api/friends/blocks", "shortDescription": {"text": "Unused endpoint: GET /api/friends/blocks"}, "fullDescription": {"text": "`src/friends/friends.controller.ts` declares `GET /api/friends/blocks` 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-310e30d73f80b3cd", "name": "Unused endpoint: POST /api/friends/blocks", "shortDescription": {"text": "Unused endpoint: POST /api/friends/blocks"}, "fullDescription": {"text": "`src/friends/friends.controller.ts` declares `POST /api/friends/blocks` 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-cbb58938903bf6e1", "name": "Unused endpoint: DELETE /api/friends/blocks/:userId", "shortDescription": {"text": "Unused endpoint: DELETE /api/friends/blocks/:userId"}, "fullDescription": {"text": "`src/friends/friends.controller.ts` declares `DELETE /api/friends/blocks/:userId` 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-625413731c45f70f", "name": "Unused endpoint: POST /api/friends/reports", "shortDescription": {"text": "Unused endpoint: POST /api/friends/reports"}, "fullDescription": {"text": "`src/friends/friends.controller.ts` declares `POST /api/friends/reports` 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-6adb02a9364500c3", "name": "Unused endpoint: GET /api/parts", "shortDescription": {"text": "Unused endpoint: GET /api/parts"}, "fullDescription": {"text": "`src/character/character.controller.ts` declares `GET /api/parts` 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-5229ee3016713734", "name": "Unused endpoint: POST /api/parts", "shortDescription": {"text": "Unused endpoint: POST /api/parts"}, "fullDescription": {"text": "`src/character/character.controller.ts` declares `POST /api/parts` 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-9de3e748f6b46798", "name": "Unused endpoint: DELETE /api/parts/:id", "shortDescription": {"text": "Unused endpoint: DELETE /api/parts/:id"}, "fullDescription": {"text": "`src/character/character.controller.ts` declares `DELETE /api/parts/: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-8e3b5b90566b7039", "name": "Unused endpoint: GET /api/character/preset", "shortDescription": {"text": "Unused endpoint: GET /api/character/preset"}, "fullDescription": {"text": "`src/character/character.controller.ts` declares `GET /api/character/preset` 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-d2050dcb8942208c", "name": "Unused endpoint: PUT /api/character/preset", "shortDescription": {"text": "Unused endpoint: PUT /api/character/preset"}, "fullDescription": {"text": "`src/character/character.controller.ts` declares `PUT /api/character/preset` 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-1ccc095b9fc4710d", "name": "Unused endpoint: GET /api/rooms/:id", "shortDescription": {"text": "Unused endpoint: GET /api/rooms/:id"}, "fullDescription": {"text": "`src/rooms/rooms.controller.ts` declares `GET /api/rooms/: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-21f3c500cd53a3ed", "name": "Unused endpoint: POST /api/rooms/:id/join", "shortDescription": {"text": "Unused endpoint: POST /api/rooms/:id/join"}, "fullDescription": {"text": "`src/rooms/rooms.controller.ts` declares `POST /api/rooms/:id/join` 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-0b010d20cc9845d8", "name": "Unused endpoint: POST /api/rooms/:id/leave", "shortDescription": {"text": "Unused endpoint: POST /api/rooms/:id/leave"}, "fullDescription": {"text": "`src/rooms/rooms.controller.ts` declares `POST /api/rooms/:id/leave` 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-affd3821fe590b10", "name": "Unused endpoint: DELETE /api/rooms/:id", "shortDescription": {"text": "Unused endpoint: DELETE /api/rooms/:id"}, "fullDescription": {"text": "`src/rooms/rooms.controller.ts` declares `DELETE /api/rooms/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/19197"}, "properties": {"repository": "seemit99/reeklo-server", "repoUrl": "https://github.com/seemit99/reeklo-server", "branch": "main"}, "results": [{"ruleId": "scanner-10c0a0b630ebe075", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/gateway-e2e.js:12"}, "properties": {"repobilityId": "32a95b508082201f", "scanner": "scanner-primary", "fingerprint": "10c0a0b630ebe075", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d5d0616bc5bc2d88", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/frontend-protocol-e2e.js:9"}, "properties": {"repobilityId": "4ec6121d32f133be", "scanner": "scanner-primary", "fingerprint": "d5d0616bc5bc2d88", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5a95450e6c0c3473", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/social-e2e.js:15"}, "properties": {"repobilityId": "263c48283544edaa", "scanner": "scanner-primary", "fingerprint": "5a95450e6c0c3473", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-40dec0c4e7d045b5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/main.ts:29"}, "properties": {"repobilityId": "981eedf4f52fff93", "scanner": "scanner-primary", "fingerprint": "40dec0c4e7d045b5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b92a476d224a326b", "level": "error", "message": {"text": "Possible secret in test/frontend-protocol-e2e.js"}, "properties": {"repobilityId": "50c6382db5454f39", "scanner": "scanner-primary", "fingerprint": "b92a476d224a326b", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/frontend-protocol-e2e.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-2539c4d755fb4c55", "level": "error", "message": {"text": "Possible secret in test/social-e2e.js"}, "properties": {"repobilityId": "10f346df82ed1c13", "scanner": "scanner-primary", "fingerprint": "2539c4d755fb4c55", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/social-e2e.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-2539c4d755fb4c55", "level": "error", "message": {"text": "Possible secret in test/social-e2e.js"}, "properties": {"repobilityId": "10f346df82ed1c13", "scanner": "scanner-primary", "fingerprint": "2539c4d755fb4c55", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/social-e2e.js"}, "region": {"startLine": 10}}}]}, {"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-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "1625ef7850836f43", "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": "e6f325310c9e34fd", "scanner": "scanner-primary", "fingerprint": "faccb9061e9b52a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "d604c3aeafea41ef", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "f70226c0c02cda24", "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": "76878e5319025add", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-ec8e0c103ddeebd3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/gateway-e2e.js:23"}, "properties": {"repobilityId": "99189bc9d30a835b", "scanner": "scanner-primary", "fingerprint": "ec8e0c103ddeebd3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ec064e7c887ea72d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/frontend-protocol-e2e.js:13"}, "properties": {"repobilityId": "71cd8e460e526489", "scanner": "scanner-primary", "fingerprint": "ec064e7c887ea72d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f808a4ef3e1071fb", "level": "note", "message": {"text": "14 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "ce6b2ec4be4ec75a", "scanner": "scanner-primary", "fingerprint": "f808a4ef3e1071fb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-53cdcee6144e106a", "level": "note", "message": {"text": "Unused endpoint: GET /api/users/me"}, "properties": {"repobilityId": "3b77fa42b853f85e", "scanner": "scanner-primary", "fingerprint": "53cdcee6144e106a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9d1f422281bc067d", "level": "note", "message": {"text": "Unused endpoint: GET /api/users/me/settings"}, "properties": {"repobilityId": "56971314ea2f1f9e", "scanner": "scanner-primary", "fingerprint": "9d1f422281bc067d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ae92b3ec8c4b354d", "level": "note", "message": {"text": "Unused endpoint: GET /api/users/me/checkin"}, "properties": {"repobilityId": "1928a66f34bd395a", "scanner": "scanner-primary", "fingerprint": "ae92b3ec8c4b354d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8dc2e874eee47d0b", "level": "note", "message": {"text": "Unused endpoint: POST /api/users/me/checkin"}, "properties": {"repobilityId": "5fbd561416b8225f", "scanner": "scanner-primary", "fingerprint": "8dc2e874eee47d0b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f1488b58186c0f40", "level": "note", "message": {"text": "Unused endpoint: PUT /api/users/me/settings"}, "properties": {"repobilityId": "da6ff16685189842", "scanner": "scanner-primary", "fingerprint": "f1488b58186c0f40", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-24ee758ea12a1267", "level": "note", "message": {"text": "Unused endpoint: GET /api/users/:id/profile"}, "properties": {"repobilityId": "9cb6ea2a1020dc1b", "scanner": "scanner-primary", "fingerprint": "24ee758ea12a1267", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-812760b081b9ff1a", "level": "note", "message": {"text": "Unused endpoint: GET /api/users/:id"}, "properties": {"repobilityId": "bf771c87f641aae5", "scanner": "scanner-primary", "fingerprint": "812760b081b9ff1a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cb2635b50239d452", "level": "note", "message": {"text": "Unused endpoint: PUT /api/users/me"}, "properties": {"repobilityId": "3e99f9a96ace249c", "scanner": "scanner-primary", "fingerprint": "cb2635b50239d452", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-56377b1244b31f60", "level": "note", "message": {"text": "Unused endpoint: PUT /api/users/me/profile"}, "properties": {"repobilityId": "af410e8dac89e217", "scanner": "scanner-primary", "fingerprint": "56377b1244b31f60", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-234d6fb0d99c2982", "level": "note", "message": {"text": "Unused endpoint: GET /api/guilds/me"}, "properties": {"repobilityId": "842e0600094fb908", "scanner": "scanner-primary", "fingerprint": "234d6fb0d99c2982", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-450c5b918313a627", "level": "note", "message": {"text": "Unused endpoint: GET /api/guilds/:id"}, "properties": {"repobilityId": "ab54e30ba5a078f9", "scanner": "scanner-primary", "fingerprint": "450c5b918313a627", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bc0d93692792eb0c", "level": "note", "message": {"text": "Unused endpoint: POST /api/guilds/:id/join"}, "properties": {"repobilityId": "36a3ce6b7f649221", "scanner": "scanner-primary", "fingerprint": "bc0d93692792eb0c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-185bf7d5b4647649", "level": "note", "message": {"text": "Unused endpoint: POST /api/guilds/leave"}, "properties": {"repobilityId": "1eab09be9285cad0", "scanner": "scanner-primary", "fingerprint": "185bf7d5b4647649", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4ce1c4f8af27be71", "level": "note", "message": {"text": "Unused endpoint: DELETE /api/guilds/me"}, "properties": {"repobilityId": "1d0e6b72cc061b09", "scanner": "scanner-primary", "fingerprint": "4ce1c4f8af27be71", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-81a17d2071a539a2", "level": "note", "message": {"text": "Unused endpoint: DELETE /api/guilds/members/:userId"}, "properties": {"repobilityId": "9bd3d4f86be01909", "scanner": "scanner-primary", "fingerprint": "81a17d2071a539a2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bf283f4220806bdd", "level": "note", "message": {"text": "Unused endpoint: PUT /api/guilds/members/:userId/role"}, "properties": {"repobilityId": "4ea9c958a7179a72", "scanner": "scanner-primary", "fingerprint": "bf283f4220806bdd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a5b3437e64c8f7b4", "level": "note", "message": {"text": "Unused endpoint: POST /api/auth/register"}, "properties": {"repobilityId": "ed1c066e6fc36f07", "scanner": "scanner-primary", "fingerprint": "a5b3437e64c8f7b4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fd55aa0818a7c897", "level": "note", "message": {"text": "Unused endpoint: POST /api/auth/login"}, "properties": {"repobilityId": "629412f0963a4949", "scanner": "scanner-primary", "fingerprint": "fd55aa0818a7c897", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-27400df70d317884", "level": "note", "message": {"text": "Unused endpoint: GET /api/auth/email/status"}, "properties": {"repobilityId": "8e5ca9327546441e", "scanner": "scanner-primary", "fingerprint": "27400df70d317884", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ccc27a6b45f7e705", "level": "note", "message": {"text": "Unused endpoint: POST /api/auth/email/send-code"}, "properties": {"repobilityId": "61a30961f55f9271", "scanner": "scanner-primary", "fingerprint": "ccc27a6b45f7e705", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-88a2c42a825b8c89", "level": "note", "message": {"text": "Unused endpoint: POST /api/auth/email/verify"}, "properties": {"repobilityId": "57a289f33f5d6efc", "scanner": "scanner-primary", "fingerprint": "88a2c42a825b8c89", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4a382abbdc1fc2d6", "level": "note", "message": {"text": "Unused endpoint: POST /api/auth/password/reset"}, "properties": {"repobilityId": "6df3317ab4f89355", "scanner": "scanner-primary", "fingerprint": "4a382abbdc1fc2d6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-214b38c070d14346", "level": "note", "message": {"text": "Unused endpoint: POST /api/auth/password/change"}, "properties": {"repobilityId": "6eecd402f1a3923d", "scanner": "scanner-primary", "fingerprint": "214b38c070d14346", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-53f9362b3afda122", "level": "note", "message": {"text": "Unused endpoint: GET /api/plazas/me"}, "properties": {"repobilityId": "da9194eff61afe40", "scanner": "scanner-primary", "fingerprint": "53f9362b3afda122", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5b3580cd5fd6c967", "level": "note", "message": {"text": "Unused endpoint: GET /api/plazas/user/:userId"}, "properties": {"repobilityId": "2fc1b2b44f336c38", "scanner": "scanner-primary", "fingerprint": "5b3580cd5fd6c967", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-43b354e9752c983b", "level": "note", "message": {"text": "Unused endpoint: GET /api/plazas/:id"}, "properties": {"repobilityId": "c53f837dcaa56650", "scanner": "scanner-primary", "fingerprint": "43b354e9752c983b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cf6d1e8433aafe34", "level": "note", "message": {"text": "Unused endpoint: POST /api/plazas/:id/join"}, "properties": {"repobilityId": "c90ecdc20c5b5505", "scanner": "scanner-primary", "fingerprint": "cf6d1e8433aafe34", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ac054032d686e176", "level": "note", "message": {"text": "Unused endpoint: POST /api/plazas/:id/leave"}, "properties": {"repobilityId": "7af995aeb6a7d80e", "scanner": "scanner-primary", "fingerprint": "ac054032d686e176", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6ba19aed30131162", "level": "note", "message": {"text": "Unused endpoint: PUT /api/plazas/:id/decorations"}, "properties": {"repobilityId": "6030179caff2466f", "scanner": "scanner-primary", "fingerprint": "6ba19aed30131162", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9259f49c0e71428a", "level": "note", "message": {"text": "Unused endpoint: GET /api/users/me/items"}, "properties": {"repobilityId": "cb27f15e9f865737", "scanner": "scanner-primary", "fingerprint": "9259f49c0e71428a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-672039986eb52a93", "level": "note", "message": {"text": "Unused endpoint: POST /api/items/:id/purchase"}, "properties": {"repobilityId": "846c424f848001b5", "scanner": "scanner-primary", "fingerprint": "672039986eb52a93", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b3b8504f5c20dfbf", "level": "note", "message": {"text": "Unused endpoint: GET /api/friends/requests"}, "properties": {"repobilityId": "55df97eb06fe1ba8", "scanner": "scanner-primary", "fingerprint": "b3b8504f5c20dfbf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3f2727de1ee5f20d", "level": "note", "message": {"text": "Unused endpoint: POST /api/friends/requests"}, "properties": {"repobilityId": "35d107d9d75f7f21", "scanner": "scanner-primary", "fingerprint": "3f2727de1ee5f20d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-16807aef732c7af7", "level": "note", "message": {"text": "Unused endpoint: POST /api/friends/requests/:id/accept"}, "properties": {"repobilityId": "92edaa10857a7618", "scanner": "scanner-primary", "fingerprint": "16807aef732c7af7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fb388d00ed945121", "level": "note", "message": {"text": "Unused endpoint: POST /api/friends/requests/:id/reject"}, "properties": {"repobilityId": "3c45b06342138576", "scanner": "scanner-primary", "fingerprint": "fb388d00ed945121", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a1eb7e1f839ebc6", "level": "note", "message": {"text": "Unused endpoint: DELETE /api/friends/requests/:id"}, "properties": {"repobilityId": "efc29864ef1fb8a4", "scanner": "scanner-primary", "fingerprint": "7a1eb7e1f839ebc6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-295d8234b72b9595", "level": "note", "message": {"text": "Unused endpoint: DELETE /api/friends/:userId"}, "properties": {"repobilityId": "71a084524fbe6370", "scanner": "scanner-primary", "fingerprint": "295d8234b72b9595", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f0b66be8863143c7", "level": "note", "message": {"text": "Unused endpoint: GET /api/friends/blocks"}, "properties": {"repobilityId": "f9aac8cf02d4839f", "scanner": "scanner-primary", "fingerprint": "f0b66be8863143c7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-310e30d73f80b3cd", "level": "note", "message": {"text": "Unused endpoint: POST /api/friends/blocks"}, "properties": {"repobilityId": "0fde42efc7b96c3e", "scanner": "scanner-primary", "fingerprint": "310e30d73f80b3cd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cbb58938903bf6e1", "level": "note", "message": {"text": "Unused endpoint: DELETE /api/friends/blocks/:userId"}, "properties": {"repobilityId": "fdd7a47e56db199f", "scanner": "scanner-primary", "fingerprint": "cbb58938903bf6e1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-625413731c45f70f", "level": "note", "message": {"text": "Unused endpoint: POST /api/friends/reports"}, "properties": {"repobilityId": "52dad69c1d422960", "scanner": "scanner-primary", "fingerprint": "625413731c45f70f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6adb02a9364500c3", "level": "note", "message": {"text": "Unused endpoint: GET /api/parts"}, "properties": {"repobilityId": "577f36a5b0232b49", "scanner": "scanner-primary", "fingerprint": "6adb02a9364500c3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5229ee3016713734", "level": "note", "message": {"text": "Unused endpoint: POST /api/parts"}, "properties": {"repobilityId": "76239e1d19edb0d5", "scanner": "scanner-primary", "fingerprint": "5229ee3016713734", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9de3e748f6b46798", "level": "note", "message": {"text": "Unused endpoint: DELETE /api/parts/:id"}, "properties": {"repobilityId": "763aaa28a0a4e6df", "scanner": "scanner-primary", "fingerprint": "9de3e748f6b46798", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8e3b5b90566b7039", "level": "note", "message": {"text": "Unused endpoint: GET /api/character/preset"}, "properties": {"repobilityId": "fb3c2970a880a0c9", "scanner": "scanner-primary", "fingerprint": "8e3b5b90566b7039", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d2050dcb8942208c", "level": "note", "message": {"text": "Unused endpoint: PUT /api/character/preset"}, "properties": {"repobilityId": "6273935425e3d933", "scanner": "scanner-primary", "fingerprint": "d2050dcb8942208c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1ccc095b9fc4710d", "level": "note", "message": {"text": "Unused endpoint: GET /api/rooms/:id"}, "properties": {"repobilityId": "2cc7abad3c2bdf73", "scanner": "scanner-primary", "fingerprint": "1ccc095b9fc4710d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-21f3c500cd53a3ed", "level": "note", "message": {"text": "Unused endpoint: POST /api/rooms/:id/join"}, "properties": {"repobilityId": "5b2ffa3bcaef2817", "scanner": "scanner-primary", "fingerprint": "21f3c500cd53a3ed", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0b010d20cc9845d8", "level": "note", "message": {"text": "Unused endpoint: POST /api/rooms/:id/leave"}, "properties": {"repobilityId": "aee69d59ba6e96b8", "scanner": "scanner-primary", "fingerprint": "0b010d20cc9845d8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-affd3821fe590b10", "level": "note", "message": {"text": "Unused endpoint: DELETE /api/rooms/:id"}, "properties": {"repobilityId": "d933291298c1e50b", "scanner": "scanner-primary", "fingerprint": "affd3821fe590b10", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}