{"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-b78bbe9648b055fe", "name": "Possibly dead Python function: set_bucket", "shortDescription": {"text": "Possibly dead Python function: set_bucket"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3829e80525489430", "name": "Possibly dead Python function: set_access_key", "shortDescription": {"text": "Possibly dead Python function: set_access_key"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3697ecc082eb8e66", "name": "Possibly dead Python function: set_secret_key", "shortDescription": {"text": "Possibly dead Python function: set_secret_key"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4429d75541c493b0", "name": "Possibly dead Python function: set_path", "shortDescription": {"text": "Possibly dead Python function: set_path"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d4112c94d07d7d31", "name": "Possibly dead Python function: set_endpoint", "shortDescription": {"text": "Possibly dead Python function: set_endpoint"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-25e67cd4d6f8b3f6", "name": "Possibly dead Python function: set_region", "shortDescription": {"text": "Possibly dead Python function: set_region"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8f5b1dfbaf303dda", "name": "Possibly dead Python function: set_s3_uri_style", "shortDescription": {"text": "Possibly dead Python function: set_s3_uri_style"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9f987edd66fe550d", "name": "Possibly dead Python function: set_storage_class", "shortDescription": {"text": "Possibly dead Python function: set_storage_class"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-669570a8e3bcf1f0", "name": "Possibly dead Python function: set_tls_ca_chain", "shortDescription": {"text": "Possibly dead Python function: set_tls_ca_chain"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-acde6173e2291f21", "name": "Possibly dead Python function: set_s3_api_version", "shortDescription": {"text": "Possibly dead Python function: set_s3_api_version"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b3b5b7139ecb7f88", "name": "Possibly dead Python function: set_delete_older_than_days", "shortDescription": {"text": "Possibly dead Python function: set_delete_older_than_days"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4676513e12ac895d", "name": "Possibly dead Python function: set_attributes", "shortDescription": {"text": "Possibly dead Python function: set_attributes"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-311ca828d80f3084", "name": "Possibly dead Python function: wrapper", "shortDescription": {"text": "Possibly dead Python function: wrapper"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f7870d64d5a0d300", "name": "Possibly dead Python function: decorator", "shortDescription": {"text": "Possibly dead Python function: decorator"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1bd5e456fd0652f4", "name": "Possibly dead Python function: has_key", "shortDescription": {"text": "Possibly dead Python function: has_key"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2e3d11a066c61e04", "name": "Possibly dead Python function: set_credentials", "shortDescription": {"text": "Possibly dead Python function: set_credentials"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-963b9eca0adcd223", "name": "Possibly dead Python function: set_entity_credentials", "shortDescription": {"text": "Possibly dead Python function: set_entity_credentials"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-160faa091a959c68", "name": "Possibly dead Python function: set_tls", "shortDescription": {"text": "Possibly dead Python function: set_tls"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fdd4be7d3a26b9fb", "name": "Possibly dead Python function: set_tls_ca", "shortDescription": {"text": "Possibly dead Python function: set_tls_ca"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6aeb0c8634295fcc", "name": "Possibly dead Python function: resolve_status", "shortDescription": {"text": "Possibly dead Python function: resolve_status"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2a6300e9c3e39c13", "name": "Possibly dead Python function: clear_statuses", "shortDescription": {"text": "Possibly dead Python function: clear_statuses"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-604657875d412c18", "name": "Possibly dead Python function: is_resource_created", "shortDescription": {"text": "Possibly dead Python function: is_resource_created"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c3a6267f5a20f469", "name": "Possibly dead Python function: set_database", "shortDescription": {"text": "Possibly dead Python function: set_database"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9d95d37327e0bafc", "name": "Possibly dead Python function: set_prefix_databases", "shortDescription": {"text": "Possibly dead Python function: set_prefix_databases"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cff21d8922b45c17", "name": "Possibly dead Python function: set_endpoints", "shortDescription": {"text": "Possibly dead Python function: set_endpoints"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fcf54c194aef6985", "name": "Possibly dead Python function: set_read_only_endpoints", "shortDescription": {"text": "Possibly dead Python function: set_read_only_endpoints"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-63de4d747dc3f58a", "name": "Possibly dead Python function: set_replset", "shortDescription": {"text": "Possibly dead Python function: set_replset"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-88aa5d334fbbd170", "name": "Possibly dead Python function: set_uris", "shortDescription": {"text": "Possibly dead Python function: set_uris"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-820a79d41563cc4f", "name": "Possibly dead Python function: set_read_only_uris", "shortDescription": {"text": "Possibly dead Python function: set_read_only_uris"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cdb93f9bfde89d15", "name": "Possibly dead Python function: set_version", "shortDescription": {"text": "Possibly dead Python function: set_version"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7ab3e2551ebf68f8", "name": "Privileged port 587 in use", "shortDescription": {"text": "Privileged port 587 in use"}, "fullDescription": {"text": "Port 587 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "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-8659c0e32ddb5813", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/index.html:181", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/index.html:181"}, "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-6215dbc46735d898", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/index.html:186", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/index.html:186"}, "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-b0e24ede76b551f0", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-002.html:481"}, "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-07b60bf4be52a7ca", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-010.html:1590"}, "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-2538557c1d158a94", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-007.html:2380"}, "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-1845edc9f6949cb7", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-004.html:298"}, "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-cd8ef49be224d5e9", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-006.html:4097"}, "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-a6f08de0118622a4", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-009.html:498"}, "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-42e039071c852cca", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/inde", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/index.html:774"}, "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-741051be8270bd7d", "name": "Insecure pattern 'domparser_html_parse' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/index.html:", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/index.html:840"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d0d517fb710c047c", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-011.html:242"}, "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-9c45e9a90ac2b457", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-001.html:4711"}, "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-61d12e89985c439c", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-008.html:595"}, "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-b4ab305ab446ab13", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-005.html:1567"}, "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-e0dbc00a50d191aa", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-003.html:538"}, "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-10404a263e4e769e", "name": "Possible secret in lib/charms/data_platform_libs/v0/data_interfaces.py", "shortDescription": {"text": "Possible secret in lib/charms/data_platform_libs/v0/data_interfaces.py"}, "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-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-c248395e7d3d8609", "name": "Very large file: lib/charms/data_platform_libs/v0/data_interfaces.py (5782 lines)", "shortDescription": {"text": "Very large file: lib/charms/data_platform_libs/v0/data_interfaces.py (5782 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e5e8b1620d05f386", "name": "Very large file: lib/charms/tls_certificates_interface/v4/tls_certificates.py (2591 lines)", "shortDescription": {"text": "Very large file: lib/charms/tls_certificates_interface/v4/tls_certificates.py (2591 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c35eacf5a12ba8e6", "name": "Very large file: lib/charms/grafana_agent/v0/cos_agent.py (1472 lines)", "shortDescription": {"text": "Very large file: lib/charms/grafana_agent/v0/cos_agent.py (1472 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-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-0abec6a644795817", "name": "Commented-code block (9 lines) in lib/charms/data_platform_libs/v0/s3.py:265", "shortDescription": {"text": "Commented-code block (9 lines) in lib/charms/data_platform_libs/v0/s3.py:265"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-69662aee5eac5ea4", "name": "Commented-code block (11 lines) in lib/charms/data_platform_libs/v0/data_interfaces.py:817", "shortDescription": {"text": "Commented-code block (11 lines) in lib/charms/data_platform_libs/v0/data_interfaces.py:817"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cb9612ec324681fc", "name": "Legacy-named symbol `_load_v1` in lib/charms/tls_certificates_interface/v4/tls_certificates.py:174", "shortDescription": {"text": "Legacy-named symbol `_load_v1` in lib/charms/tls_certificates_interface/v4/tls_certificates.py:174"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9bbc32ce3e83c978", "name": "Commented-code block (5 lines) in lib/charms/grafana_agent/v0/cos_agent.py:993", "shortDescription": {"text": "Commented-code block (5 lines) in lib/charms/grafana_agent/v0/cos_agent.py:993"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nlib/charms/data_platform_libs/v0/s3.py:diff, lib/charms/data_platform_libs/v0/data_interfaces.py:diff\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nlib/charms/data_platform_libs/v0/data_interfaces.py:get_encoded_dict, lib/charms/data_platform_libs/v0/data_interfaces.py:get, lib/charms/data_platform_libs/v0/data_interfaces.py:get\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nlib/charms/data_platform_libs/v0/data_interfaces.py:wrapper, lib/charms/data_platform_libs/v0/data_interfaces.py:wrapper, lib/charms/data_platform_libs/v0/data_interfaces.py:wrapper, lib/charms/data_platform_libs/v0/data_interfaces.py:wrapper\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nlib/charms/data_platform_libs/v0/data_interfaces.py:raise_status, lib/charms/data_platform_libs/v0/data_interfaces.py:raise_status, lib/charms/data_platform_libs/v0/data_interfaces.py:raise_status, lib/charms/data_platform_libs/v0/data_interfaces.py:raise_status\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/21520"}, "properties": {"repository": "tonyandrewmeyer/mastodon-operator", "repoUrl": "https://github.com/tonyandrewmeyer/mastodon-operator", "branch": "main"}, "results": [{"ruleId": "scanner-b78bbe9648b055fe", "level": "note", "message": {"text": "Possibly dead Python function: set_bucket"}, "properties": {"repobilityId": "b7fbf863979b4b45", "scanner": "scanner-primary", "fingerprint": "b78bbe9648b055fe", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/s3.py:365"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3829e80525489430", "level": "note", "message": {"text": "Possibly dead Python function: set_access_key"}, "properties": {"repobilityId": "bb48ea7749d7feff", "scanner": "scanner-primary", "fingerprint": "3829e80525489430", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/s3.py:377"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3697ecc082eb8e66", "level": "note", "message": {"text": "Possibly dead Python function: set_secret_key"}, "properties": {"repobilityId": "b74af86d39e865e0", "scanner": "scanner-primary", "fingerprint": "3697ecc082eb8e66", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/s3.py:389"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4429d75541c493b0", "level": "note", "message": {"text": "Possibly dead Python function: set_path"}, "properties": {"repobilityId": "d9923e497ce67bcf", "scanner": "scanner-primary", "fingerprint": "4429d75541c493b0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/s3.py:401"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d4112c94d07d7d31", "level": "note", "message": {"text": "Possibly dead Python function: set_endpoint"}, "properties": {"repobilityId": "c1090189a572bf24", "scanner": "scanner-primary", "fingerprint": "d4112c94d07d7d31", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/s3.py:413"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-25e67cd4d6f8b3f6", "level": "note", "message": {"text": "Possibly dead Python function: set_region"}, "properties": {"repobilityId": "91cc9a30362a467a", "scanner": "scanner-primary", "fingerprint": "25e67cd4d6f8b3f6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/s3.py:425"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8f5b1dfbaf303dda", "level": "note", "message": {"text": "Possibly dead Python function: set_s3_uri_style"}, "properties": {"repobilityId": "7b5b31082b52c695", "scanner": "scanner-primary", "fingerprint": "8f5b1dfbaf303dda", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/s3.py:437"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9f987edd66fe550d", "level": "note", "message": {"text": "Possibly dead Python function: set_storage_class"}, "properties": {"repobilityId": "40749ed03031af7b", "scanner": "scanner-primary", "fingerprint": "9f987edd66fe550d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/s3.py:449"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-669570a8e3bcf1f0", "level": "note", "message": {"text": "Possibly dead Python function: set_tls_ca_chain"}, "properties": {"repobilityId": "f4bc7e98d47c03a5", "scanner": "scanner-primary", "fingerprint": "669570a8e3bcf1f0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/s3.py:461"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-acde6173e2291f21", "level": "note", "message": {"text": "Possibly dead Python function: set_s3_api_version"}, "properties": {"repobilityId": "703dea0906199a9a", "scanner": "scanner-primary", "fingerprint": "acde6173e2291f21", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/s3.py:473"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b3b5b7139ecb7f88", "level": "note", "message": {"text": "Possibly dead Python function: set_delete_older_than_days"}, "properties": {"repobilityId": "20119bf4f09081a3", "scanner": "scanner-primary", "fingerprint": "b3b5b7139ecb7f88", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/s3.py:485"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4676513e12ac895d", "level": "note", "message": {"text": "Possibly dead Python function: set_attributes"}, "properties": {"repobilityId": "617b4d6a687bf736", "scanner": "scanner-primary", "fingerprint": "4676513e12ac895d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/s3.py:497"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-311ca828d80f3084", "level": "note", "message": {"text": "Possibly dead Python function: wrapper"}, "properties": {"repobilityId": "1dc9acbcc8ce537d", "scanner": "scanner-primary", "fingerprint": "311ca828d80f3084", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:685"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f7870d64d5a0d300", "level": "note", "message": {"text": "Possibly dead Python function: decorator"}, "properties": {"repobilityId": "ffbcbc9bc189af1c", "scanner": "scanner-primary", "fingerprint": "f7870d64d5a0d300", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:681"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1bd5e456fd0652f4", "level": "note", "message": {"text": "Possibly dead Python function: has_key"}, "properties": {"repobilityId": "40b20d0257819b10", "scanner": "scanner-primary", "fingerprint": "1bd5e456fd0652f4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:1077"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2e3d11a066c61e04", "level": "note", "message": {"text": "Possibly dead Python function: set_credentials"}, "properties": {"repobilityId": "4ff0c916a9ec8181", "scanner": "scanner-primary", "fingerprint": "2e3d11a066c61e04", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:1911"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-963b9eca0adcd223", "level": "note", "message": {"text": "Possibly dead Python function: set_entity_credentials"}, "properties": {"repobilityId": "de8bc0ad8decb469", "scanner": "scanner-primary", "fingerprint": "963b9eca0adcd223", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:1924"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-160faa091a959c68", "level": "note", "message": {"text": "Possibly dead Python function: set_tls"}, "properties": {"repobilityId": "342d72e34fb25efe", "scanner": "scanner-primary", "fingerprint": "160faa091a959c68", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:1942"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fdd4be7d3a26b9fb", "level": "note", "message": {"text": "Possibly dead Python function: set_tls_ca"}, "properties": {"repobilityId": "dc197615d1d96d30", "scanner": "scanner-primary", "fingerprint": "fdd4be7d3a26b9fb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:5533"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6aeb0c8634295fcc", "level": "note", "message": {"text": "Possibly dead Python function: resolve_status"}, "properties": {"repobilityId": "a8c3fee6ad12a8db", "scanner": "scanner-primary", "fingerprint": "6aeb0c8634295fcc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:2015"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2a6300e9c3e39c13", "level": "note", "message": {"text": "Possibly dead Python function: clear_statuses"}, "properties": {"repobilityId": "0a0842f5697142e7", "scanner": "scanner-primary", "fingerprint": "2a6300e9c3e39c13", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:2031"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-604657875d412c18", "level": "note", "message": {"text": "Possibly dead Python function: is_resource_created"}, "properties": {"repobilityId": "7ece9ae107621d4f", "scanner": "scanner-primary", "fingerprint": "604657875d412c18", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:2166"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c3a6267f5a20f469", "level": "note", "message": {"text": "Possibly dead Python function: set_database"}, "properties": {"repobilityId": "3d6de9d22afa5ded", "scanner": "scanner-primary", "fingerprint": "c3a6267f5a20f469", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:3439"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9d95d37327e0bafc", "level": "note", "message": {"text": "Possibly dead Python function: set_prefix_databases"}, "properties": {"repobilityId": "3da649ba2e2ec969", "scanner": "scanner-primary", "fingerprint": "9d95d37327e0bafc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:3451"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cff21d8922b45c17", "level": "note", "message": {"text": "Possibly dead Python function: set_endpoints"}, "properties": {"repobilityId": "a0e038cdaa5e60c0", "scanner": "scanner-primary", "fingerprint": "cff21d8922b45c17", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:5515"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fcf54c194aef6985", "level": "note", "message": {"text": "Possibly dead Python function: set_read_only_endpoints"}, "properties": {"repobilityId": "97f5beaf9e384762", "scanner": "scanner-primary", "fingerprint": "fcf54c194aef6985", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:3479"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-63de4d747dc3f58a", "level": "note", "message": {"text": "Possibly dead Python function: set_replset"}, "properties": {"repobilityId": "e73c2919844797c0", "scanner": "scanner-primary", "fingerprint": "63de4d747dc3f58a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:3491"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-88aa5d334fbbd170", "level": "note", "message": {"text": "Possibly dead Python function: set_uris"}, "properties": {"repobilityId": "b152cae104902deb", "scanner": "scanner-primary", "fingerprint": "88aa5d334fbbd170", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:5506"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-820a79d41563cc4f", "level": "note", "message": {"text": "Possibly dead Python function: set_read_only_uris"}, "properties": {"repobilityId": "ed2df628daea3fa4", "scanner": "scanner-primary", "fingerprint": "820a79d41563cc4f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:3513"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cdb93f9bfde89d15", "level": "note", "message": {"text": "Possibly dead Python function: set_version"}, "properties": {"repobilityId": "da455db65c7430e0", "scanner": "scanner-primary", "fingerprint": "cdb93f9bfde89d15", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py:5524"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7ab3e2551ebf68f8", "level": "warning", "message": {"text": "Privileged port 587 in use"}, "properties": {"repobilityId": "a87a96c3b2e62c08", "scanner": "scanner-primary", "fingerprint": "7ab3e2551ebf68f8", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "README.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-8659c0e32ddb5813", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/index.html:181"}, "properties": {"repobilityId": "1ff8d519fbe2a79d", "scanner": "scanner-primary", "fingerprint": "8659c0e32ddb5813", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/transcripts/html/index.html"}, "region": {"startLine": 181}}}]}, {"ruleId": "scanner-6215dbc46735d898", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/index.html:186"}, "properties": {"repobilityId": "76906b1d8cde82ae", "scanner": "scanner-primary", "fingerprint": "6215dbc46735d898", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/transcripts/html/ubuntu/index.html"}, "region": {"startLine": 186}}}]}, {"ruleId": "scanner-b0e24ede76b551f0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-002.html:481"}, "properties": {"repobilityId": "67448357d079f0ee", "scanner": "scanner-primary", "fingerprint": "b0e24ede76b551f0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-002.html"}, "region": {"startLine": 481}}}]}, {"ruleId": "scanner-07b60bf4be52a7ca", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-010.html:1590"}, "properties": {"repobilityId": "4f3f9c1266ef17dd", "scanner": "scanner-primary", "fingerprint": "07b60bf4be52a7ca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-010.html"}, "region": {"startLine": 1590}}}]}, {"ruleId": "scanner-2538557c1d158a94", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-007.html:2380"}, "properties": {"repobilityId": "62f18a9975820822", "scanner": "scanner-primary", "fingerprint": "2538557c1d158a94", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-007.html"}, "region": {"startLine": 2380}}}]}, {"ruleId": "scanner-1845edc9f6949cb7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-004.html:298"}, "properties": {"repobilityId": "6d7389f3af69eb16", "scanner": "scanner-primary", "fingerprint": "1845edc9f6949cb7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-004.html"}, "region": {"startLine": 298}}}]}, {"ruleId": "scanner-cd8ef49be224d5e9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-006.html:4097"}, "properties": {"repobilityId": "ae035f741e70250b", "scanner": "scanner-primary", "fingerprint": "cd8ef49be224d5e9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-006.html"}, "region": {"startLine": 4097}}}]}, {"ruleId": "scanner-a6f08de0118622a4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-009.html:498"}, "properties": {"repobilityId": "315485fae3a02983", "scanner": "scanner-primary", "fingerprint": "a6f08de0118622a4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-009.html"}, "region": {"startLine": 498}}}]}, {"ruleId": "scanner-42e039071c852cca", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/index.html:774"}, "properties": {"repobilityId": "a670c48b09f18fad", "scanner": "scanner-primary", "fingerprint": "42e039071c852cca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/index.html"}, "region": {"startLine": 774}}}]}, {"ruleId": "scanner-741051be8270bd7d", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/index.html:840"}, "properties": {"repobilityId": "bb3bd2f08bddb525", "scanner": "scanner-primary", "fingerprint": "741051be8270bd7d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/index.html"}, "region": {"startLine": 840}}}]}, {"ruleId": "scanner-d0d517fb710c047c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-011.html:242"}, "properties": {"repobilityId": "998a0ed666987707", "scanner": "scanner-primary", "fingerprint": "d0d517fb710c047c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-011.html"}, "region": {"startLine": 242}}}]}, {"ruleId": "scanner-9c45e9a90ac2b457", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-001.html:4711"}, "properties": {"repobilityId": "908f2b350f85622e", "scanner": "scanner-primary", "fingerprint": "9c45e9a90ac2b457", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-001.html"}, "region": {"startLine": 4711}}}]}, {"ruleId": "scanner-61d12e89985c439c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-008.html:595"}, "properties": {"repobilityId": "1b3d0e3de11ccff1", "scanner": "scanner-primary", "fingerprint": "61d12e89985c439c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-008.html"}, "region": {"startLine": 595}}}]}, {"ruleId": "scanner-b4ab305ab446ab13", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-005.html:1567"}, "properties": {"repobilityId": "43944b59badd757a", "scanner": "scanner-primary", "fingerprint": "b4ab305ab446ab13", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-005.html"}, "region": {"startLine": 1567}}}]}, {"ruleId": "scanner-e0dbc00a50d191aa", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-003.html:538"}, "properties": {"repobilityId": "2cbca1a2621c1c8b", "scanner": "scanner-primary", "fingerprint": "e0dbc00a50d191aa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/transcripts/html/ubuntu/1f8f0f59-6f51-4151-8ed4-85d7920ab31e/page-003.html"}, "region": {"startLine": 538}}}]}, {"ruleId": "scanner-10404a263e4e769e", "level": "error", "message": {"text": "Possible secret in lib/charms/data_platform_libs/v0/data_interfaces.py"}, "properties": {"repobilityId": "2f364fed06189b23", "scanner": "scanner-primary", "fingerprint": "10404a263e4e769e", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/charms/data_platform_libs/v0/data_interfaces.py"}, "region": {"startLine": 3689}}}]}, {"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-c248395e7d3d8609", "level": "note", "message": {"text": "Very large file: lib/charms/data_platform_libs/v0/data_interfaces.py (5782 lines)"}, "properties": {"repobilityId": "7057eadc8cbfb511", "scanner": "scanner-primary", "fingerprint": "c248395e7d3d8609", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e5e8b1620d05f386", "level": "note", "message": {"text": "Very large file: lib/charms/tls_certificates_interface/v4/tls_certificates.py (2591 lines)"}, "properties": {"repobilityId": "19f1f995b7f4978f", "scanner": "scanner-primary", "fingerprint": "e5e8b1620d05f386", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c35eacf5a12ba8e6", "level": "note", "message": {"text": "Very large file: lib/charms/grafana_agent/v0/cos_agent.py (1472 lines)"}, "properties": {"repobilityId": "b51084f52d231bd1", "scanner": "scanner-primary", "fingerprint": "c35eacf5a12ba8e6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "24aff7f69341b758", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "31b49f8e5438fcc4", "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": "8baf92c1ce99b11b", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-0abec6a644795817", "level": "none", "message": {"text": "Commented-code block (9 lines) in lib/charms/data_platform_libs/v0/s3.py:265"}, "properties": {"repobilityId": "39bb758f289371b0", "scanner": "scanner-primary", "fingerprint": "0abec6a644795817", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69662aee5eac5ea4", "level": "none", "message": {"text": "Commented-code block (11 lines) in lib/charms/data_platform_libs/v0/data_interfaces.py:817"}, "properties": {"repobilityId": "5d639a8b5bad44e6", "scanner": "scanner-primary", "fingerprint": "69662aee5eac5ea4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb9612ec324681fc", "level": "note", "message": {"text": "Legacy-named symbol `_load_v1` in lib/charms/tls_certificates_interface/v4/tls_certificates.py:174"}, "properties": {"repobilityId": "1641646cb59c5e8e", "scanner": "scanner-primary", "fingerprint": "cb9612ec324681fc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9bbc32ce3e83c978", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/charms/grafana_agent/v0/cos_agent.py:993"}, "properties": {"repobilityId": "32c7c4369b518046", "scanner": "scanner-primary", "fingerprint": "9bbc32ce3e83c978", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "17aaed6920d32ad1", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "34c81415144a02df", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "22b3a5d835e3bacc", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "1a75281bc477fedf", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "297f71d9e607b069", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "dd8d7e44aa089a2b", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "9028db6dbf873d9d", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "34fd8d4264678f63", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "c7600fa8e5f80fad", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "a6194c0945153795", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "d326bcc608a11aa4", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "a437bc35792939e2", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "98ef92364ecacd09", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "f6ca6070e5162e26", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "5690a2ceac8db77a", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "e763fffb0a87c43c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "3d70f3048c4e1134", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "d7c0a1dfdfc72e82", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "96188fa52a4f5951", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "1bd414789ae03362", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}