{
  "schema": "varexis-public-evidence-record/0.3",
  "generated_at_utc": "2026-10-16T13:36:43.315Z",
  "record_id": "VXI-EXT-PROCUREMENT-BIGQUERY-MASK-CACHE-01-v1",
  "record_kind": "external_reference",
  "title": "BigQuery masking: Role changes and cached results",
  "system": "Google BigQuery",
  "evidence_family": "vendor_evidence_review",
  "index_status": "PUBLIC_SAFE_SOURCE_REVIEW",
  "evidence_state": "PRIMARY_DOCUMENTATION_REVIEW_ONLY",
  "canonical_question": "Does replacing raw-data access with Masked Reader immediately hide earlier query results?",
  "near_questions": [
    "Can a cached BigQuery result retain raw column values?",
    "Was raw access used before the role change?",
    "Does the repeated query use cache?",
    "When was Fine-Grained Reader revoked?",
    "When was Masked Reader granted?",
    "Are base table permissions still present?",
    "Which data policy applies to the column?",
    "Does a broad Masked Reader grant cover other policies?",
    "Is a fresh query equivalent to a cached result?",
    "What is the documented cache window?",
    "Which evidence verifies the changed output?",
    "Can I save the role-and-cache review?"
  ],
  "supported_claims": [
    {
      "claim": "BigQuery documents a query-cache caveat when a user queries raw data, then loses Fine-Grained Reader and gains Masked Reader within the cache period. An identical query can still return cached raw data. Masking rules and base table permissions also matter; a role-change screenshot does not establish every result is masked.",
      "reliance": "DOCUMENTED_CAPABILITY_ONLY"
    }
  ],
  "not_demonstrated_claims": [
    "Verified buyer configuration or effective access rights",
    "Independent execution, completeness or security testing",
    "Vendor certification, legal compliance or guaranteed suitability"
  ],
  "public_summary": "BigQuery documents a query-cache caveat when a user queries raw data, then loses Fine-Grained Reader and gains Masked Reader within the cache period. An identical query can still return cached raw data. Masking rules and base table permissions also matter; a role-change screenshot does not establish every result is masked.",
  "related_record_ids": [],
  "source_review": {
    "source_type": "official_external_documentation",
    "source_title": "BigQuery data masking introduction",
    "source_url": "https://docs.cloud.google.com/bigquery/docs/column-data-masking-intro",
    "checked_on": "2026-10-16",
    "candidate_record_id": "VXI-EXT-PROCUREMENT-BIGQUERY-MASK-CACHE-01-v1",
    "candidate_record_sha256": "35bc4148d36243a01627443cbf074a68770af29d17b2ffaa0c6b35339c9d4034",
    "method": "Primary documentation reviewed for the published bounded statement.",
    "deployment_tested_by_varexis": false,
    "revalidation": "The delivered snapshot preserves the review date shown. Recheck current primary documentation and deployment context before relying on present applicability; payment does not trigger fresh research."
  },
  "answer_policy": {
    "classification": "DOCUMENTED_WITH_DEPLOYMENT_BOUNDARY",
    "bounded_answer": "BigQuery documents a query-cache caveat when a user queries raw data, then loses Fine-Grained Reader and gains Masked Reader within the cache period. An identical query can still return cached raw data. Masking rules and base table permissions also matter; a role-change screenshot does not establish every result is masked.",
    "required_buyer_context": "Data policy, role transition, query identity, timing and cache usage. Effective configuration and dated operational evidence have not been inspected.",
    "missing_evidence": "A broader claim needs evidence matching the intended use. Payment does not upgrade the evidence state."
  },
  "private_boundary": "Raw logs, thresholds, private paths, source code, protected mechanisms and reconstruction-level details are excluded from public and paid delivery.",
  "decision_profile": {
    "schema": "varexis-vendor-evidence-review/1",
    "review_status": "documentation_review_only",
    "checked_on": "2026-10-16",
    "claim_to_check": "Revoking raw-column access immediately masks every repeated query result.",
    "documented_statement": {
      "status": "documented",
      "statement": "BigQuery documents a query-cache caveat when a user queries raw data, then loses Fine-Grained Reader and gains Masked Reader within the cache period. An identical query can still return cached raw data. Masking rules and base table permissions also matter; a role-change screenshot does not establish every result is masked.",
      "source_ids": [
        "bigquery"
      ]
    },
    "buyer_evidence_required": [
      "Prior raw query and role-change timing.",
      "Cache usage and query configuration.",
      "Policy bindings and effective table permissions."
    ],
    "review_condition": {
      "status": "varexis_review_policy",
      "statement": "Require a cache-aware check before asserting that a role change removed raw-result access."
    },
    "unknowns": "The buyer configuration, contract, effective entitlement and operational evidence have not been inspected. Missing evidence does not establish absence or failure of the feature.",
    "evidence_sources": [
      {
        "source_id": "bigquery",
        "url": "https://docs.cloud.google.com/bigquery/docs/column-data-masking-intro",
        "final_url": "https://docs.cloud.google.com/bigquery/docs/column-data-masking-intro",
        "title": "BigQuery data masking introduction",
        "checked_on": "2026-10-16",
        "sha256": "b996d9e1a1e17a81647ae54bb4a018ac3fffa4e17512b72ab88213e1bd7ac435",
        "bytes": 350963
      }
    ],
    "observed_deployment": false,
    "commercial_reliance_boundary": "Procurement evidence support only; no supplier clearance, legal conclusion, configuration audit or verification of the buyer's claim is supplied.",
    "paid_value": {
      "decision_context": "Preserve the precise access-transition caveat used in a data-sharing review.",
      "free": "Complete review, practical questions, sources and limitations; may be saved locally.",
      "single_request": "Existing server-saved version-bound route snapshot for later authenticated retrieval.",
      "evidence_receipt": "The same snapshot plus the existing unsigned delivery receipt.",
      "excluded": [
        "Fresh vendor research",
        "Continuous monitoring or change alerts",
        "Testing the buyer configuration",
        "Private evidence or vendor certification"
      ],
      "integrity": "Hashes identify content versions; they do not prove truth or provide a signature."
    },
    "revalidation": {
      "trigger": "A saved purchase does not recheck the source or buyer configuration.",
      "specific_watch": "Data policy, role transition, query identity, timing and cache usage."
    }
  },
  "paid_access_note": "The full published answer and boundaries are free. Paid access saves the selected route and source versions, with an unsigned receipt when purchased. Preview coverage before paying. Fresh research, bespoke assessment and protected evidence are excluded.",
  "service_route": {
    "request_guide": "/varexis-index/request.html",
    "request_workflow": "/varexis-index/request-workflow.json",
    "service_id": "single_request",
    "service_routes_url": "/varexis-index/service-routes.json",
    "payment_required": true,
    "availability_endpoint": "/api/index/capabilities",
    "operational_status": "AUTOMATIC_SERVICE_CAPABILITIES_GATED",
    "checkout_url": "/index-access"
  },
  "authority_boundary": "VAREXIS-INDEX informs evidence reliance. It does not provide advice, certification, deployment authority, security assurance, production approval, or guarantee.",
  "human_page": "/varexis-index/catalog.html#bigquery-masking-role-change-cache-boundary",
  "machine_readable_record": "/varexis-index/records/bigquery-masking-role-change-cache-boundary.json"
}
