{
  "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
  "version": "2.1.0",
  "runs": [
    {
      "tool": {
        "driver": {
          "name": "apk-scanner.com",
          "informationUri": "https://apk-scanner.com",
          "version": "1.0.0",
          "rules": [
            {
              "id": "APKSCAN-20-google_api_key",
              "name": "GoogleApiKey",
              "shortDescription": {
                "text": "Google API key (client-shipped; restriction unverified)"
              },
              "fullDescription": {
                "text": "Restrict the API key (application + API restrictions in Google Cloud Console); a client-shipped key is public, so restriction is the control."
              },
              "helpUri": "https://apk-scanner.com/finding/google_api_key",
              "help": {
                "text": "Restrict the API key (application + API restrictions in Google Cloud Console); a client-shipped key is public, so restriction is the control."
              },
              "defaultConfiguration": {
                "level": "note"
              },
              "properties": {
                "tags": [
                  "security",
                  "CWE-798",
                  "MASVS-STORAGE-1"
                ],
                "security-severity": "2.0",
                "cwe": [
                  "CWE-798"
                ],
                "masvs": [
                  "MASVS-STORAGE-1"
                ]
              }
            },
            {
              "id": "APKSCAN-23-do_spaces",
              "name": "DoSpaces",
              "shortDescription": {
                "text": "DigitalOcean Spaces reference"
              },
              "fullDescription": {
                "text": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
              },
              "helpUri": "https://apk-scanner.com/finding/do_spaces",
              "help": {
                "text": "Confirm the bucket/database denies anonymous read (enable auth / storage rules / RLS), then audit its contents for data already exposed while it was open."
              },
              "defaultConfiguration": {
                "level": "note"
              },
              "properties": {
                "tags": [
                  "security",
                  "CWE-200",
                  "CWE-284",
                  "MASVS-STORAGE-2"
                ],
                "security-severity": "2.0",
                "cwe": [
                  "CWE-200",
                  "CWE-284"
                ],
                "masvs": [
                  "MASVS-STORAGE-2"
                ]
              }
            },
            {
              "id": "APKSCAN-72-sentry_dsn",
              "name": "SentryDsn",
              "shortDescription": {
                "text": "Sentry DSN"
              },
              "fullDescription": {
                "text": "A client DSN is low-risk but confirm it is a client (not internal) DSN and cannot be abused to spoof events."
              },
              "helpUri": "https://apk-scanner.com/finding/sentry_dsn",
              "help": {
                "text": "A client DSN is low-risk but confirm it is a client (not internal) DSN and cannot be abused to spoof events."
              },
              "defaultConfiguration": {
                "level": "note"
              },
              "properties": {
                "tags": [
                  "security",
                  "CWE-200",
                  "MASVS-STORAGE-2"
                ],
                "security-severity": "2.0",
                "cwe": [
                  "CWE-200"
                ],
                "masvs": [
                  "MASVS-STORAGE-2"
                ]
              }
            }
          ]
        }
      },
      "automationDetails": {
        "id": "apk-scanner/com.maderesponsively.scienceshorts/5fceba70-0bb4-42e6-b8ba-22fb630ec3b0"
      },
      "invocations": [
        {
          "executionSuccessful": true
        }
      ],
      "results": [
        {
          "ruleId": "APKSCAN-20-google_api_key",
          "level": "note",
          "message": {
            "text": "Google API key (client-shipped; restriction unverified)"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "resources.arsc"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "e3b85c88f15c27247dc971e493a71f66ee10bdf53c4cdf868b67903ccad32bd4"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-23-do_spaces",
          "level": "note",
          "message": {
            "text": "DigitalOcean Spaces reference"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "assets/index.android.bundle"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "1446622c6c9c6eddb7bb2605c479cec5e10dcefc99c145de62804c6a887e97a7"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-72-sentry_dsn",
          "level": "note",
          "message": {
            "text": "Sentry DSN"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "assets/index.android.bundle"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "122a14554969b0b46649b8f6b475fef0d97131f96fbe4968f7b76eb6bed99ba4"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "informational"
          }
        }
      ],
      "properties": {
        "analysis": {
          "issues": [],
          "stages": {
            "pii": "complete",
            "sbom": "complete",
            "signing": "certificate_parsed",
            "strings": "complete",
            "manifest": "complete"
          },
          "status": "complete",
          "grading": {
            "policy": "static-coverage-v1",
            "blockers": [],
            "eligible": true
          },
          "timings_ms": {
            "total": 18301.04,
            "harvest": 4371.318000000009,
            "detectors": 13241.44500000001
          },
          "bytes_total": 87703855,
          "bytes_scanned": 87703855,
          "bytes_skipped": 0,
          "files_processed": 1089,
          "coverage_version": 2,
          "string_encodings": [
            "ascii",
            "utf16le"
          ],
          "signature_validation": "not_performed"
        },
        "provenance": {
          "mode": "static",
          "artifacts": [
            {
              "name": "base.apk",
              "sha256": "78f11a652bd26f081094c906736e6146f73ad85a1c70e3decdf2549c051143c1"
            },
            {
              "name": "config.arm64_v8a.apk",
              "sha256": "064ca75360684ef0ea573d1469abfd9f06863c82978f7233c52f74082e62e1c1"
            },
            {
              "name": "config.en.apk",
              "sha256": "60c190ff1ecddcc9918538a6485a999d865bbfc067d42b1f59394524c9781d6d"
            },
            {
              "name": "config.xxhdpi.apk",
              "sha256": "9bd20cc64aac0266b09e18478842736f0ddae42eb8bccc60ba826a3dde0cdd59"
            }
          ],
          "ruleset_sha256": "3bb79cc3710b0fb021feaa322578f4cffe08396a97c51b34df092b5a05891d5e"
        },
        "apk_sha256": "78f11a652bd26f081094c906736e6146f73ad85a1c70e3decdf2549c051143c1",
        "app_id": "com.maderesponsively.scienceshorts",
        "app_title": "Study Shorts GCSE & A-Level",
        "app_version": "1.21.1",
        "scan_id": "5fceba70-0bb4-42e6-b8ba-22fb630ec3b0",
        "scanned_at": "2026-10-11T00:08:47.032Z"
      }
    }
  ]
}