{
  "schema": "varexis-public-evidence-record/0.3",
  "generated_at_utc": "2026-10-14T01:25:58.088Z",
  "record_id": "VXI-EXT-PROCUREMENT-GITLAB-MASKING-01-v1",
  "record_kind": "external_reference",
  "title": "GitLab variables: Masking and pipeline trust",
  "system": "GitLab CI/CD variables",
  "evidence_family": "vendor_evidence_review",
  "index_status": "PUBLIC_SAFE_SOURCE_REVIEW",
  "evidence_state": "PRIMARY_DOCUMENTATION_REVIEW_ONLY",
  "canonical_question": "Does masking a GitLab variable prevent a job from disclosing it?",
  "near_questions": [
    "Does masking a CI variable prevent exfiltration by a job?",
    "Can malicious pipeline code access a protected secret?",
    "How do log masking and variable availability differ?",
    "What evidence identifies the code allowed to receive a secret?",
    "Does hiding a value in settings stop runtime access?",
    "Which branch or environment rules govern CI variables?",
    "Should an agent trust a masked-log screenshot as isolation proof?",
    "Can pipeline changes invalidate a secret-handling review?",
    "What should procurement ask about build-secret exposure?",
    "How should an agent qualify a protected-variable claim?",
    "Can I preserve a CI-secret review without storing the secret?",
    "When should variable access be reassessed?"
  ],
  "supported_claims": [
    {
      "claim": "GitLab warns that masking is not a guarantee against malicious scripts and that both masked and protected variables can be compromised by code given access. Log display controls and job-access restrictions address different questions. Review the pipeline and variable availability before accepting an isolation claim.",
      "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": "GitLab warns that masking is not a guarantee against malicious scripts and that both masked and protected variables can be compromised by code given access. Log display controls and job-access restrictions address different questions. Review the pipeline and variable availability before accepting an isolation claim.",
  "related_record_ids": [
    "VXI-EXT-PROCUREMENT-GITHUB-PUSH-BYPASS-01-v1",
    "VXI-EXT-PROCUREMENT-SLACK-SCIM-DEACTIVATION-01-v1",
    "VXI-EXT-PROCUREMENT-GCP-KEY-LIFECYCLE-01-v1",
    "VXI-EXT-PROCUREMENT-AWS-LAST-ACCESS-01-v1"
  ],
  "source_review": {
    "source_type": "official_external_documentation",
    "source_title": "GitLab CI variable masking, protection and script exposure",
    "source_url": "https://docs.gitlab.com/ci/variables/",
    "checked_on": "2026-10-14",
    "candidate_record_id": "VXI-EXT-PROCUREMENT-GITLAB-MASKING-01-v1",
    "candidate_record_sha256": "ccc19a08af1b205ef7f8ce56272387262648c24cd61a325a24347f1f63017a30",
    "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": "GitLab warns that masking is not a guarantee against malicious scripts and that both masked and protected variables can be compromised by code given access. Log display controls and job-access restrictions address different questions. Review the pipeline and variable availability before accepting an isolation claim.",
    "required_buyer_context": "Pipeline source, job code, variable masking/protection and target branch/environment.",
    "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-14",
    "claim_to_check": "Masked or protected variables cannot leave CI jobs.",
    "documented_statement": {
      "status": "documented",
      "statement": "GitLab warns that masking is not a guarantee against malicious scripts and that both masked and protected variables can be compromised by code given access. Log display controls and job-access restrictions address different questions. Review the pipeline and variable availability before accepting an isolation claim.",
      "source_ids": [
        "gitlab-variables"
      ]
    },
    "buyer_evidence_required": [
      "Variable availability in the exact pipeline context",
      "Review of code and dependencies allowed to use the variable",
      "Relevant masking, hiding and protection settings"
    ],
    "review_condition": {
      "status": "varexis_review_policy",
      "statement": "Do not equate log masking with isolation from executing code."
    },
    "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": "gitlab-variables",
        "url": "https://docs.gitlab.com/ci/variables/",
        "final_url": "https://docs.gitlab.com/ci/variables/",
        "title": "GitLab CI variable masking, protection and script exposure",
        "checked_on": "2026-10-14",
        "sha256": "645d6b1e14ded0a51cef2e09ff08d37f443b7fbd945fbc511c507629f00e3ff9",
        "bytes": 92542
      }
    ],
    "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": "Save the evidence checklist for a supplier CI-secret handling claim.",
      "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": "Recheck pipeline changes, variable availability and branch rules."
    }
  },
  "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#gitlab-variable-masking-exposure-evidence",
  "machine_readable_record": "/varexis-index/records/gitlab-variable-masking-exposure-evidence.json"
}
