{"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-ed9ea16216e565e5", "name": "Icon-only button without accessible name \u2014 admin-common.js:281", "shortDescription": {"text": "Icon-only button without accessible name \u2014 admin-common.js:281"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ba7eead7f15d1b88", "name": "Icon-only button without accessible name \u2014 bm-en/admin-common.js:281", "shortDescription": {"text": "Icon-only button without accessible name \u2014 bm-en/admin-common.js:281"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-f3c0845ae1004128", "name": "Insecure pattern 'direct_innerhtml_assignment' in admin-members.html:382", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-members.html:382"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-804740472e41c365", "name": "Insecure pattern 'insert_adjacent_html' in admin-members.html:433", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in admin-members.html:433"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6aa9084c82b082e5", "name": "Insecure pattern 'direct_innerhtml_assignment' in bm-inventory.html:218", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-inventory.html:218"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-747d53d44ae03405", "name": "Insecure pattern 'insert_adjacent_html' in bm-inventory.html:289", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in bm-inventory.html:289"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d20d710d34e634f9", "name": "Insecure pattern 'direct_innerhtml_assignment' in admin-ad.html:315", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-ad.html:315"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-462d03bf3825da32", "name": "Insecure pattern 'direct_innerhtml_assignment' in bm-members.html:345", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-members.html:345"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-74d29a5c414d032e", "name": "Insecure pattern 'insert_adjacent_html' in bm-members.html:396", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in bm-members.html:396"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1aef64a8b46a301b", "name": "Insecure pattern 'direct_innerhtml_assignment' in admin-orders.html:368", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-orders.html:368"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7f838eeb1ba3e0eb", "name": "Insecure pattern 'insert_adjacent_html' in admin-orders.html:458", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in admin-orders.html:458"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1a06f30cf328b8b0", "name": "Insecure pattern 'direct_innerhtml_assignment' in admin-menu.html:256", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-menu.html:256"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-772742956f77857f", "name": "Insecure pattern 'insert_adjacent_html' in admin-menu.html:295", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in admin-menu.html:295"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4aff151549d7fb54", "name": "Insecure pattern 'direct_innerhtml_assignment' in admin-nutrition.html:265", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-nutrition.html:265"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-044f755f883b6db1", "name": "Insecure pattern 'direct_innerhtml_assignment' in bm-menu.html:219", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-menu.html:219"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-75a4dde2792a7072", "name": "Insecure pattern 'insert_adjacent_html' in bm-menu.html:258", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in bm-menu.html:258"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8a3e9c5f0c10504c", "name": "Insecure pattern 'direct_innerhtml_assignment' in bm-sales.html:388", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-sales.html:388"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bd421c1a357f4520", "name": "Insecure pattern 'direct_innerhtml_assignment' in admin-branch.html:376", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-branch.html:376"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d9159f2839e57381", "name": "Insecure pattern 'direct_innerhtml_assignment' in index.html:1225", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index.html:1225"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-02292547f773af80", "name": "Insecure pattern 'direct_innerhtml_assignment' in admin-inventory.html:255", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-inventory.html:255"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-da7edc6e1059c963", "name": "Insecure pattern 'insert_adjacent_html' in admin-inventory.html:326", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in admin-inventory.html:326"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-68ae593b0bb675bb", "name": "Insecure pattern 'direct_innerhtml_assignment' in admin-common.js:375", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-common.js:375"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5da0095007335eb5", "name": "Insecure pattern 'insert_adjacent_html' in admin-common.js:216", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in admin-common.js:216"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1c10913ebf1f2f5f", "name": "Insecure pattern 'direct_innerhtml_assignment' in bm-orders.html:331", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-orders.html:331"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-be6601d2a5d187d9", "name": "Insecure pattern 'insert_adjacent_html' in bm-orders.html:421", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in bm-orders.html:421"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6e3f70b1276e6a79", "name": "Insecure pattern 'direct_innerhtml_assignment' in admin-sales.html:425", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-sales.html:425"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3e301d602e30109f", "name": "Insecure pattern 'direct_innerhtml_assignment' in admin-index.html:516", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-index.html:516"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-58fd0e7a15df47cd", "name": "Insecure pattern 'direct_innerhtml_assignment' in admin-combo.html:276", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-combo.html:276"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b0c729e9c5ec622", "name": "Insecure pattern 'direct_innerhtml_assignment' in payment-request.html:218", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in payment-request.html:218"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-21bb9222320db2a6", "name": "Insecure pattern 'direct_innerhtml_assignment' in vrink-order-confirm.html:291", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vrink-order-confirm.html:291"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c599f062c8f0bc4f", "name": "Insecure pattern 'direct_innerhtml_assignment' in admin-tour.js:203", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-tour.js:203"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-64f956687225b4b1", "name": "Insecure pattern 'direct_innerhtml_assignment' in vrink-install-guide.html:924", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vrink-install-guide.html:924"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-813bcd816ee17d00", "name": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/bm-inventory.html:218", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/bm-inventory.html:218"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-19fdc43b51ad3aca", "name": "Insecure pattern 'insert_adjacent_html' in bm-en/bm-inventory.html:289", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in bm-en/bm-inventory.html:289"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4ebc7ed4268670f8", "name": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/bm-members.html:345", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/bm-members.html:345"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9ceac22f324954b2", "name": "Insecure pattern 'insert_adjacent_html' in bm-en/bm-members.html:396", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in bm-en/bm-members.html:396"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a882e5751547f32c", "name": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/bm-menu.html:219", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/bm-menu.html:219"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-72c536a7f2014825", "name": "Insecure pattern 'insert_adjacent_html' in bm-en/bm-menu.html:258", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in bm-en/bm-menu.html:258"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e44357f918e47887", "name": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/bm-sales.html:388", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/bm-sales.html:388"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f32e692bf46c3516", "name": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/index.html:1225", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/index.html:1225"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-84c95d8dd37b4fdd", "name": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/admin-common.js:375", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/admin-common.js:375"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5447d02e767d4ef3", "name": "Insecure pattern 'insert_adjacent_html' in bm-en/admin-common.js:216", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in bm-en/admin-common.js:216"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ecb4f8e05cde94e4", "name": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/bm-orders.html:331", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/bm-orders.html:331"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e068d35c5c385f19", "name": "Insecure pattern 'insert_adjacent_html' in bm-en/bm-orders.html:421", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in bm-en/bm-orders.html:421"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4a62fbb7235d2bac", "name": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/admin-tour.js:203", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/admin-tour.js:203"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-35dd7a38bfea6879", "name": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-members.html:308", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-members.html:308"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-881e45a8e6dba169", "name": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-orders.html:288", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-orders.html:288"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b55c022c5f7cd4c", "name": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-membership.html:304", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-membership.html:304"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f6058c6191c5a7c3", "name": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-menu.html:234", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-menu.html:234"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2c589e76e9eb7634", "name": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-sales.html:370", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-sales.html:370"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-23e92de02a371293", "name": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-index.html:432", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-index.html:432"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-891b8d4e826d9a4d", "name": "Insecure pattern 'local_storage_auth_token' in vrink-branch-admin/branch-login.html:158", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in vrink-branch-admin/branch-login.html:158"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6b785a16c1c18c4a", "name": "Insecure pattern 'insert_adjacent_html' in vrink-branch-admin/branch-common.js:229", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in vrink-branch-admin/branch-common.js:229"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "0 test file(s) for 5 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-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-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}}]}}, "automationDetails": {"id": "repobility/22634"}, "properties": {"repository": "weemiles/vrink-shop", "repoUrl": "https://github.com/weemiles/vrink-shop", "branch": "main"}, "results": [{"ruleId": "scanner-ed9ea16216e565e5", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 admin-common.js:281"}, "properties": {"repobilityId": "6485caf6de735363", "scanner": "scanner-primary", "fingerprint": "ed9ea16216e565e5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-ba7eead7f15d1b88", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 bm-en/admin-common.js:281"}, "properties": {"repobilityId": "c068229f38f94eeb", "scanner": "scanner-primary", "fingerprint": "ba7eead7f15d1b88", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"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-f3c0845ae1004128", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-members.html:382"}, "properties": {"repobilityId": "cf6ef37230144453", "scanner": "scanner-primary", "fingerprint": "f3c0845ae1004128", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-members.html"}, "region": {"startLine": 382}}}]}, {"ruleId": "scanner-804740472e41c365", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in admin-members.html:433"}, "properties": {"repobilityId": "e1721a6eab0bc9e8", "scanner": "scanner-primary", "fingerprint": "804740472e41c365", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-members.html"}, "region": {"startLine": 433}}}]}, {"ruleId": "scanner-6aa9084c82b082e5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-inventory.html:218"}, "properties": {"repobilityId": "3879eb9262d83feb", "scanner": "scanner-primary", "fingerprint": "6aa9084c82b082e5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-inventory.html"}, "region": {"startLine": 218}}}]}, {"ruleId": "scanner-747d53d44ae03405", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in bm-inventory.html:289"}, "properties": {"repobilityId": "d89a129d15b480f9", "scanner": "scanner-primary", "fingerprint": "747d53d44ae03405", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-inventory.html"}, "region": {"startLine": 289}}}]}, {"ruleId": "scanner-d20d710d34e634f9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-ad.html:315"}, "properties": {"repobilityId": "45894b6df4c46892", "scanner": "scanner-primary", "fingerprint": "d20d710d34e634f9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-ad.html"}, "region": {"startLine": 315}}}]}, {"ruleId": "scanner-462d03bf3825da32", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-members.html:345"}, "properties": {"repobilityId": "5f9540b7c3b0df8c", "scanner": "scanner-primary", "fingerprint": "462d03bf3825da32", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-members.html"}, "region": {"startLine": 345}}}]}, {"ruleId": "scanner-74d29a5c414d032e", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in bm-members.html:396"}, "properties": {"repobilityId": "77789652f4310b76", "scanner": "scanner-primary", "fingerprint": "74d29a5c414d032e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-members.html"}, "region": {"startLine": 396}}}]}, {"ruleId": "scanner-1aef64a8b46a301b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-orders.html:368"}, "properties": {"repobilityId": "199d38c50f601597", "scanner": "scanner-primary", "fingerprint": "1aef64a8b46a301b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-orders.html"}, "region": {"startLine": 368}}}]}, {"ruleId": "scanner-7f838eeb1ba3e0eb", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in admin-orders.html:458"}, "properties": {"repobilityId": "84129a9463b95a0a", "scanner": "scanner-primary", "fingerprint": "7f838eeb1ba3e0eb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-orders.html"}, "region": {"startLine": 458}}}]}, {"ruleId": "scanner-1a06f30cf328b8b0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-menu.html:256"}, "properties": {"repobilityId": "2634f370b8a773ce", "scanner": "scanner-primary", "fingerprint": "1a06f30cf328b8b0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-menu.html"}, "region": {"startLine": 256}}}]}, {"ruleId": "scanner-772742956f77857f", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in admin-menu.html:295"}, "properties": {"repobilityId": "f70b7a546da81f7f", "scanner": "scanner-primary", "fingerprint": "772742956f77857f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-menu.html"}, "region": {"startLine": 295}}}]}, {"ruleId": "scanner-4aff151549d7fb54", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-nutrition.html:265"}, "properties": {"repobilityId": "e29b506425f2bc96", "scanner": "scanner-primary", "fingerprint": "4aff151549d7fb54", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-nutrition.html"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-044f755f883b6db1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-menu.html:219"}, "properties": {"repobilityId": "60ac7a2a1f7ae07d", "scanner": "scanner-primary", "fingerprint": "044f755f883b6db1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-menu.html"}, "region": {"startLine": 219}}}]}, {"ruleId": "scanner-75a4dde2792a7072", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in bm-menu.html:258"}, "properties": {"repobilityId": "7403d9f709c72f78", "scanner": "scanner-primary", "fingerprint": "75a4dde2792a7072", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-menu.html"}, "region": {"startLine": 258}}}]}, {"ruleId": "scanner-8a3e9c5f0c10504c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-sales.html:388"}, "properties": {"repobilityId": "a1005a3cdac17a8d", "scanner": "scanner-primary", "fingerprint": "8a3e9c5f0c10504c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-sales.html"}, "region": {"startLine": 388}}}]}, {"ruleId": "scanner-bd421c1a357f4520", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-branch.html:376"}, "properties": {"repobilityId": "0a552b630783878f", "scanner": "scanner-primary", "fingerprint": "bd421c1a357f4520", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-branch.html"}, "region": {"startLine": 376}}}]}, {"ruleId": "scanner-d9159f2839e57381", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index.html:1225"}, "properties": {"repobilityId": "f91708437a3a5445", "scanner": "scanner-primary", "fingerprint": "d9159f2839e57381", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "index.html"}, "region": {"startLine": 1225}}}]}, {"ruleId": "scanner-02292547f773af80", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-inventory.html:255"}, "properties": {"repobilityId": "9392c2e5bc1a054f", "scanner": "scanner-primary", "fingerprint": "02292547f773af80", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-inventory.html"}, "region": {"startLine": 255}}}]}, {"ruleId": "scanner-da7edc6e1059c963", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in admin-inventory.html:326"}, "properties": {"repobilityId": "318fc66b10cef39f", "scanner": "scanner-primary", "fingerprint": "da7edc6e1059c963", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-inventory.html"}, "region": {"startLine": 326}}}]}, {"ruleId": "scanner-68ae593b0bb675bb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-common.js:375"}, "properties": {"repobilityId": "2b67456c3d232a08", "scanner": "scanner-primary", "fingerprint": "68ae593b0bb675bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-common.js"}, "region": {"startLine": 375}}}]}, {"ruleId": "scanner-5da0095007335eb5", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in admin-common.js:216"}, "properties": {"repobilityId": "ae06534396ec7a9b", "scanner": "scanner-primary", "fingerprint": "5da0095007335eb5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-common.js"}, "region": {"startLine": 216}}}]}, {"ruleId": "scanner-1c10913ebf1f2f5f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-orders.html:331"}, "properties": {"repobilityId": "6dd93bf6bbf352d6", "scanner": "scanner-primary", "fingerprint": "1c10913ebf1f2f5f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-orders.html"}, "region": {"startLine": 331}}}]}, {"ruleId": "scanner-be6601d2a5d187d9", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in bm-orders.html:421"}, "properties": {"repobilityId": "c3dc92d029358128", "scanner": "scanner-primary", "fingerprint": "be6601d2a5d187d9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-orders.html"}, "region": {"startLine": 421}}}]}, {"ruleId": "scanner-6e3f70b1276e6a79", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-sales.html:425"}, "properties": {"repobilityId": "65476d962e380f66", "scanner": "scanner-primary", "fingerprint": "6e3f70b1276e6a79", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-sales.html"}, "region": {"startLine": 425}}}]}, {"ruleId": "scanner-3e301d602e30109f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-index.html:516"}, "properties": {"repobilityId": "292cdb7f81391fd2", "scanner": "scanner-primary", "fingerprint": "3e301d602e30109f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-index.html"}, "region": {"startLine": 516}}}]}, {"ruleId": "scanner-58fd0e7a15df47cd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-combo.html:276"}, "properties": {"repobilityId": "c6486a8bc4dd7182", "scanner": "scanner-primary", "fingerprint": "58fd0e7a15df47cd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-combo.html"}, "region": {"startLine": 276}}}]}, {"ruleId": "scanner-2b0c729e9c5ec622", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in payment-request.html:218"}, "properties": {"repobilityId": "92cd116b0712ea42", "scanner": "scanner-primary", "fingerprint": "2b0c729e9c5ec622", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "payment-request.html"}, "region": {"startLine": 218}}}]}, {"ruleId": "scanner-21bb9222320db2a6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vrink-order-confirm.html:291"}, "properties": {"repobilityId": "534c0cf52c09f4cd", "scanner": "scanner-primary", "fingerprint": "21bb9222320db2a6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "vrink-order-confirm.html"}, "region": {"startLine": 291}}}]}, {"ruleId": "scanner-c599f062c8f0bc4f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin-tour.js:203"}, "properties": {"repobilityId": "565be5d88c1b20e1", "scanner": "scanner-primary", "fingerprint": "c599f062c8f0bc4f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-tour.js"}, "region": {"startLine": 203}}}]}, {"ruleId": "scanner-64f956687225b4b1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vrink-install-guide.html:924"}, "properties": {"repobilityId": "9f0d5bbdd4582d03", "scanner": "scanner-primary", "fingerprint": "64f956687225b4b1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "vrink-install-guide.html"}, "region": {"startLine": 924}}}]}, {"ruleId": "scanner-813bcd816ee17d00", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/bm-inventory.html:218"}, "properties": {"repobilityId": "0c808ddfaab98672", "scanner": "scanner-primary", "fingerprint": "813bcd816ee17d00", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-en/bm-inventory.html"}, "region": {"startLine": 218}}}]}, {"ruleId": "scanner-19fdc43b51ad3aca", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in bm-en/bm-inventory.html:289"}, "properties": {"repobilityId": "db348bbc196d73fe", "scanner": "scanner-primary", "fingerprint": "19fdc43b51ad3aca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-en/bm-inventory.html"}, "region": {"startLine": 289}}}]}, {"ruleId": "scanner-4ebc7ed4268670f8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/bm-members.html:345"}, "properties": {"repobilityId": "8d21440b0a6dc0a9", "scanner": "scanner-primary", "fingerprint": "4ebc7ed4268670f8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-en/bm-members.html"}, "region": {"startLine": 345}}}]}, {"ruleId": "scanner-9ceac22f324954b2", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in bm-en/bm-members.html:396"}, "properties": {"repobilityId": "d008aa56b32abe46", "scanner": "scanner-primary", "fingerprint": "9ceac22f324954b2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-en/bm-members.html"}, "region": {"startLine": 396}}}]}, {"ruleId": "scanner-a882e5751547f32c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/bm-menu.html:219"}, "properties": {"repobilityId": "0d1e54eadfc4282d", "scanner": "scanner-primary", "fingerprint": "a882e5751547f32c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-en/bm-menu.html"}, "region": {"startLine": 219}}}]}, {"ruleId": "scanner-72c536a7f2014825", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in bm-en/bm-menu.html:258"}, "properties": {"repobilityId": "6af222d26508ab1e", "scanner": "scanner-primary", "fingerprint": "72c536a7f2014825", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-en/bm-menu.html"}, "region": {"startLine": 258}}}]}, {"ruleId": "scanner-e44357f918e47887", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/bm-sales.html:388"}, "properties": {"repobilityId": "6b529b4c52842014", "scanner": "scanner-primary", "fingerprint": "e44357f918e47887", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-en/bm-sales.html"}, "region": {"startLine": 388}}}]}, {"ruleId": "scanner-f32e692bf46c3516", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/index.html:1225"}, "properties": {"repobilityId": "b27e76413cf0aebf", "scanner": "scanner-primary", "fingerprint": "f32e692bf46c3516", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-en/index.html"}, "region": {"startLine": 1225}}}]}, {"ruleId": "scanner-84c95d8dd37b4fdd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/admin-common.js:375"}, "properties": {"repobilityId": "f26d490c77c2dc43", "scanner": "scanner-primary", "fingerprint": "84c95d8dd37b4fdd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-en/admin-common.js"}, "region": {"startLine": 375}}}]}, {"ruleId": "scanner-5447d02e767d4ef3", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in bm-en/admin-common.js:216"}, "properties": {"repobilityId": "8d42b28824440bee", "scanner": "scanner-primary", "fingerprint": "5447d02e767d4ef3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-en/admin-common.js"}, "region": {"startLine": 216}}}]}, {"ruleId": "scanner-ecb4f8e05cde94e4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/bm-orders.html:331"}, "properties": {"repobilityId": "03c4ee2562bc9c23", "scanner": "scanner-primary", "fingerprint": "ecb4f8e05cde94e4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-en/bm-orders.html"}, "region": {"startLine": 331}}}]}, {"ruleId": "scanner-e068d35c5c385f19", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in bm-en/bm-orders.html:421"}, "properties": {"repobilityId": "0489368f03a568fa", "scanner": "scanner-primary", "fingerprint": "e068d35c5c385f19", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-en/bm-orders.html"}, "region": {"startLine": 421}}}]}, {"ruleId": "scanner-4a62fbb7235d2bac", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in bm-en/admin-tour.js:203"}, "properties": {"repobilityId": "ece22db65f653146", "scanner": "scanner-primary", "fingerprint": "4a62fbb7235d2bac", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bm-en/admin-tour.js"}, "region": {"startLine": 203}}}]}, {"ruleId": "scanner-35dd7a38bfea6879", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-members.html:308"}, "properties": {"repobilityId": "978618542cee15f5", "scanner": "scanner-primary", "fingerprint": "35dd7a38bfea6879", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "vrink-branch-admin/branch-members.html"}, "region": {"startLine": 308}}}]}, {"ruleId": "scanner-881e45a8e6dba169", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-orders.html:288"}, "properties": {"repobilityId": "283c8f799477a6d6", "scanner": "scanner-primary", "fingerprint": "881e45a8e6dba169", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "vrink-branch-admin/branch-orders.html"}, "region": {"startLine": 288}}}]}, {"ruleId": "scanner-2b55c022c5f7cd4c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-membership.html:304"}, "properties": {"repobilityId": "43b810d14778243f", "scanner": "scanner-primary", "fingerprint": "2b55c022c5f7cd4c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "vrink-branch-admin/branch-membership.html"}, "region": {"startLine": 304}}}]}, {"ruleId": "scanner-f6058c6191c5a7c3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-menu.html:234"}, "properties": {"repobilityId": "8e624a563160d09d", "scanner": "scanner-primary", "fingerprint": "f6058c6191c5a7c3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "vrink-branch-admin/branch-menu.html"}, "region": {"startLine": 234}}}]}, {"ruleId": "scanner-2c589e76e9eb7634", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-sales.html:370"}, "properties": {"repobilityId": "4d66872b19c5314c", "scanner": "scanner-primary", "fingerprint": "2c589e76e9eb7634", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "vrink-branch-admin/branch-sales.html"}, "region": {"startLine": 370}}}]}, {"ruleId": "scanner-23e92de02a371293", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vrink-branch-admin/branch-index.html:432"}, "properties": {"repobilityId": "91bcceb22d0387f2", "scanner": "scanner-primary", "fingerprint": "23e92de02a371293", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "vrink-branch-admin/branch-index.html"}, "region": {"startLine": 432}}}]}, {"ruleId": "scanner-891b8d4e826d9a4d", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in vrink-branch-admin/branch-login.html:158"}, "properties": {"repobilityId": "045a382f5fe2679e", "scanner": "scanner-primary", "fingerprint": "891b8d4e826d9a4d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "vrink-branch-admin/branch-login.html"}, "region": {"startLine": 158}}}]}, {"ruleId": "scanner-6b785a16c1c18c4a", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in vrink-branch-admin/branch-common.js:229"}, "properties": {"repobilityId": "ed14d67928431e82", "scanner": "scanner-primary", "fingerprint": "6b785a16c1c18c4a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "vrink-branch-admin/branch-common.js"}, "region": {"startLine": 229}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"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": "fbccd757cebf0c69", "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": "a5a0dc91f897f7cf", "scanner": "scanner-primary", "fingerprint": "faccb9061e9b52a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "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": "d0187a87c5a0fd8c", "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": "bc020fa6881ab332", "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": "bbfb4ca6e9bd5d27", "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": "811062b5d0ddef9c", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}]}]}