{
  "schema": "varexis-public-evidence-record/0.3",
  "generated_at_utc": "2026-10-16T02:40:06.177Z",
  "record_id": "VXI-EXT-PROCUREMENT-GITLAB-IMMUTABLE-TAGS-01-v1",
  "record_kind": "external_reference",
  "title": "GitLab immutable tags: Rule scope and propagation still matter",
  "system": "GitLab Container Registry",
  "evidence_family": "vendor_evidence_review",
  "index_status": "PUBLIC_SAFE_SOURCE_REVIEW",
  "evidence_state": "PRIMARY_DOCUMENTATION_REVIEW_ONLY",
  "canonical_question": "Does an immutable container-tag rule make every tag permanently undeletable?",
  "near_questions": [
    "How do protected and immutable GitLab tags differ?",
    "Does a rule pattern cover every tag?",
    "Can an Owner remove the immutable rule?",
    "Can token lifetime delay rule enforcement?",
    "Can a new matching tag be created?",
    "Does a permitted push mean overwrite is allowed?",
    "How are direct manifest deletions constrained?",
    "Which registry prerequisites apply?",
    "What exact tag was reviewed?",
    "Does immutability certify image contents?",
    "When should a permanent-protection claim be qualified?",
    "Can I save a registry immutability review?"
  ],
  "supported_claims": [
    {
      "claim": "Immutable rules match patterns and differ from role-based protected-tag rules. The guide allows an Owner to delete an immutable rule and describes propagation delays tied to existing tokens. Inspect the actual pattern, rule state and effective time before treating a tag label as permanent or universal protection.",
      "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": "Immutable rules match patterns and differ from role-based protected-tag rules. The guide allows an Owner to delete an immutable rule and describes propagation delays tied to existing tokens. Inspect the actual pattern, rule state and effective time before treating a tag label as permanent or universal protection.",
  "related_record_ids": [
    "VXI-EXT-PROCUREMENT-GITHUB-ATTESTATION-01-v1",
    "VXI-EXT-PROCUREMENT-DOCKER-DIGEST-UPDATES-01-v1",
    "VXI-EXT-PROCUREMENT-NPM-PROVENANCE-01-v1",
    "VXI-EXT-PROCUREMENT-PYPI-TRUSTED-PUBLISHER-01-v1",
    "VXI-EXT-PROCUREMENT-ARTIFACT-CLEANUP-01-v1"
  ],
  "source_review": {
    "source_type": "official_external_documentation",
    "source_title": "GitLab immutable container tag rules",
    "source_url": "https://docs.gitlab.com/user/packages/container_registry/immutable_container_tags/",
    "checked_on": "2026-10-16",
    "candidate_record_id": "VXI-EXT-PROCUREMENT-GITLAB-IMMUTABLE-TAGS-01-v1",
    "candidate_record_sha256": "80493be7945ae6e48361a6a418eac5311fadcc6e0d913c4f165ed0b1a66db7d1",
    "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": "Immutable rules match patterns and differ from role-based protected-tag rules. The guide allows an Owner to delete an immutable rule and describes propagation delays tied to existing tokens. Inspect the actual pattern, rule state and effective time before treating a tag label as permanent or universal protection.",
    "required_buyer_context": "GitLab Container Registry: Rule patterns, owner authority, token propagation and tag identity; buyer configuration and operational evidence are required.",
    "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": "An immutable-tag setting permanently protects every registry tag.",
    "documented_statement": {
      "status": "documented",
      "statement": "Immutable rules match patterns and differ from role-based protected-tag rules. The guide allows an Owner to delete an immutable rule and describes propagation delays tied to existing tokens. Inspect the actual pattern, rule state and effective time before treating a tag label as permanent or universal protection.",
      "source_ids": [
        "gitlab-tags"
      ]
    },
    "buyer_evidence_required": [
      "Matching immutable/protected rules and current ownership rights.",
      "Rule-change time and token propagation interval.",
      "The exact tag and authorised evidence of enforced behaviour."
    ],
    "review_condition": {
      "status": "varexis_review_policy",
      "statement": "Do not claim permanent universal immutability from a rule label."
    },
    "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-tags",
        "url": "https://docs.gitlab.com/user/packages/container_registry/immutable_container_tags/",
        "final_url": "https://docs.gitlab.com/user/packages/container_registry/immutable_container_tags/",
        "title": "GitLab immutable container tag rules",
        "checked_on": "2026-10-16",
        "sha256": "438c92e48a3cc7eb135d1f4b003fffed1a4e9040066b7a04394ad9895ffd4a47",
        "bytes": 46193
      }
    ],
    "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 pattern and lifecycle evidence behind an image-protection 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": "Rule patterns, owner authority, token propagation and tag identity"
    }
  },
  "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-immutable-tag-rule-lifecycle",
  "machine_readable_record": "/varexis-index/records/gitlab-immutable-tag-rule-lifecycle.json"
}
