{
  "$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-80-supabase_url",
              "name": "SupabaseUrl",
              "shortDescription": {
                "text": "Supabase project 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/supabase_url",
              "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-85-supabase_anon_key",
              "name": "SupabaseAnonKey",
              "shortDescription": {
                "text": "Supabase anon key"
              },
              "fullDescription": {
                "text": "Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication."
              },
              "helpUri": "https://apk-scanner.com/finding/supabase_anon_key",
              "help": {
                "text": "Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication."
              },
              "defaultConfiguration": {
                "level": "note"
              },
              "properties": {
                "tags": [
                  "security",
                  "CWE-798",
                  "MASVS-STORAGE-1"
                ],
                "security-severity": "2.0",
                "cwe": [
                  "CWE-798"
                ],
                "masvs": [
                  "MASVS-STORAGE-1"
                ]
              }
            }
          ]
        }
      },
      "automationDetails": {
        "id": "apk-scanner/dev.britishtable.studenttrove/0020d90e-5d96-4131-a0e5-044d59d842af"
      },
      "invocations": [
        {
          "executionSuccessful": true
        }
      ],
      "results": [
        {
          "ruleId": "APKSCAN-80-supabase_url",
          "level": "note",
          "message": {
            "text": "Supabase project reference"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "_split_config.arm64_v8a/lib/arm64-v8a/libapp.so"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "1b1cb853d0f1cc3eb5d98e8baa93fa00654373628baaa540dbe485e70adbe9cf"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-80-supabase_url",
          "level": "note",
          "message": {
            "text": "Supabase project reference"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "_split_config.arm64_v8a/lib/arm64-v8a/libapp.so"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "5c43041c3e7944154dd258e6f5672e36f1e1f8a4d4f6cb68fc9547022b9bfa3d"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-80-supabase_url",
          "level": "note",
          "message": {
            "text": "Supabase project reference"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "_split_config.arm64_v8a/lib/arm64-v8a/libapp.so"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "acd2b2bab11798e08be870f5d2cdf2e5f626e70026afc19483799763ebca0fca"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-80-supabase_url",
          "level": "note",
          "message": {
            "text": "Supabase project reference"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "_split_config.arm64_v8a/lib/arm64-v8a/libapp.so"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "7e7713baf4626cd40014127655eb3420ef229851e8c0105830c07103d89473c0"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-80-supabase_url",
          "level": "note",
          "message": {
            "text": "Supabase project reference"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "_split_config.arm64_v8a/lib/arm64-v8a/libapp.so"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "7cb8644617e8706772353dcaf7c9c32cf5873d7af2dac04049297993a1e4144d"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-80-supabase_url",
          "level": "note",
          "message": {
            "text": "Supabase project reference"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "_split_config.arm64_v8a/lib/arm64-v8a/libapp.so"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "23001fbc3aaa39231b4d96e919776ae028fe7a25229557b4ded639dc8dc1ac70"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-80-supabase_url",
          "level": "note",
          "message": {
            "text": "Supabase project reference"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "_split_config.arm64_v8a/lib/arm64-v8a/libapp.so"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "420820b121df031106279bad16b778a2602f497ed4ea8a7b0b91576415ca1ac7"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-80-supabase_url",
          "level": "note",
          "message": {
            "text": "Supabase project reference"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "_split_config.arm64_v8a/lib/arm64-v8a/libapp.so"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "28dd03e13c8c045ca57e4647fb4679a3010dd00d965f4e87312041702db65413"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-signal"
          }
        },
        {
          "ruleId": "APKSCAN-85-supabase_anon_key",
          "level": "note",
          "message": {
            "text": "Supabase anon key (public client key)"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "_split_config.arm64_v8a/lib/arm64-v8a/libapp.so"
                }
              }
            }
          ],
          "partialFingerprints": {
            "apkscanFingerprint": "5c7d1ec9022f6005679a3ac978865c9c0a93483f7a651ff84193ced00894c23d"
          },
          "properties": {
            "severity": "low",
            "verified": false,
            "relationship": "gap-confirmed"
          }
        }
      ],
      "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": 6339.393,
            "harvest": 2595.545000000001,
            "detectors": 3272.0579999999945
          },
          "bytes_total": 59317058,
          "bytes_scanned": 59317058,
          "bytes_skipped": 0,
          "files_processed": 852,
          "coverage_version": 2,
          "string_encodings": [
            "ascii",
            "utf16le"
          ],
          "signature_validation": "not_performed"
        },
        "provenance": {
          "mode": "static",
          "artifacts": [
            {
              "name": "base.apk",
              "sha256": "8f4dd8cf2264ff82221d8d41c62cf17c7fba15a139a648eac35c480747f8bee1"
            },
            {
              "name": "config.arm64_v8a.apk",
              "sha256": "3697d97d5223875c6d0eed11499b8a0eadf58151e74ae06114c00e665658d48f"
            },
            {
              "name": "config.en.apk",
              "sha256": "7411d6e80da5fb9a19d550eda9911163d1b8641fbe8409a2037db32069215a96"
            },
            {
              "name": "config.es.apk",
              "sha256": "26768fd28cfe83cf401a378d44f821248a18c03ad8ce435de1cd8efb02fb6261"
            },
            {
              "name": "config.xxhdpi.apk",
              "sha256": "79146bb8b6bfb13325020db26765f1fef571b2babadcba81751547df03aa5e53"
            }
          ],
          "ruleset_sha256": "3bb79cc3710b0fb021feaa322578f4cffe08396a97c51b34df092b5a05891d5e"
        },
        "apk_sha256": "8f4dd8cf2264ff82221d8d41c62cf17c7fba15a139a648eac35c480747f8bee1",
        "app_id": "dev.britishtable.studenttrove",
        "app_title": "Student Trove - Study Planner",
        "app_version": "2.4.0",
        "scan_id": "0020d90e-5d96-4131-a0e5-044d59d842af",
        "scanned_at": "2026-10-08T07:53:14.670Z"
      }
    }
  ]
}