{
  "schema": "varexis-public-evidence-record/0.3",
  "generated_at_utc": "2026-10-24T22:44:15.019Z",
  "record_id": "VXI-EXT-PROCUREMENT-VELERO-BACKUP-EXPIRY-GC-OUTCOMES-01-v1",
  "record_kind": "external_reference",
  "title": "Velero backup TTL and deletion failures",
  "system": "Velero v1.18.4",
  "evidence_family": "vendor_evidence_review",
  "index_status": "PUBLIC_SAFE_SOURCE_REVIEW",
  "evidence_state": "PRIMARY_DOCUMENTATION_REVIEW_ONLY",
  "canonical_question": "Does reaching a Velero backup TTL prove that its backup files and snapshots were deleted?",
  "near_questions": [
    "Why is an expired Velero backup still present?",
    "Does Velero garbage collection happen exactly at the TTL?",
    "How does BSLReadOnly affect Velero backup expiry?",
    "Which objects need reconciliation after Velero backup retention runs?"
  ],
  "supported_claims": [
    {
      "claim": "The v1.18.4 guide applies expiry through the garbage-collection controller, whose documented default reconciliation interval is one hour. Expiry targets the backup resource, object-storage backup file, PV snapshots and associated restores. Failed deletion can be labelled with reasons including an unavailable or read-only backup storage location. A passed TTL alone does not establish successful removal of those objects.",
      "reliance": "DOCUMENTED_CAPABILITY_ONLY"
    }
  ],
  "not_demonstrated_claims": [
    "Provider residual copies and successful deletion of a buyer backup were not verified.",
    "No independently verified physical deletion, complete recovery, legal compliance or security assurance.",
    "Buyer deployment testing, live runtime enforcement, certification or permission to act",
    "Expanded capabilities or licences for existing INDEX executables"
  ],
  "public_summary": "The v1.18.4 guide applies expiry through the garbage-collection controller, whose documented default reconciliation interval is one hour. Expiry targets the backup resource, object-storage backup file, PV snapshots and associated restores. Failed deletion can be labelled with reasons including an unavailable or read-only backup storage location. A passed TTL alone does not establish successful removal of those objects.",
  "related_record_ids": [],
  "source_review": {
    "source_type": "official_external_documentation",
    "source_title": "Velero v1.18.4 — how-velero-works",
    "source_url": "https://raw.githubusercontent.com/vmware-tanzu/velero/4ee1e79a7aed367fd9b767b8219ec65bd0c96892/site/content/docs/main/how-velero-works.md",
    "checked_on": "2026-10-24",
    "candidate_record_id": "VXI-EXT-PROCUREMENT-VELERO-BACKUP-EXPIRY-GC-OUTCOMES-01-v1",
    "candidate_record_sha256": "930a6f3d69db6deffc82e19ccb39b6ae23abd7c74a9c79863cd44d021f7d8e0a",
    "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": "The v1.18.4 guide applies expiry through the garbage-collection controller, whose documented default reconciliation interval is one hour. Expiry targets the backup resource, object-storage backup file, PV snapshots and associated restores. Failed deletion can be labelled with reasons including an unavailable or read-only backup storage location. A passed TTL alone does not establish successful removal of those objects.",
    "required_buyer_context": "Backup expiry and controller reconciliation schedule; Deletion results and gc-failure labels; Object-store, snapshot and restore inventories. Buyer deployment not 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-24",
    "claim_to_check": "Does reaching a Velero backup TTL prove that its backup files and snapshots were deleted?",
    "documented_statement": {
      "status": "documented",
      "statement": "The v1.18.4 guide applies expiry through the garbage-collection controller, whose documented default reconciliation interval is one hour. Expiry targets the backup resource, object-storage backup file, PV snapshots and associated restores. Failed deletion can be labelled with reasons including an unavailable or read-only backup storage location. A passed TTL alone does not establish successful removal of those objects.",
      "source_ids": [
        "velero-how-velero-works"
      ]
    },
    "review_inference": {
      "status": "review_inference",
      "statement": "Reconcile retention deadlines with actual garbage-collection outcomes. The required reconciliation is a review judgment; no buyer deployment was inspected.",
      "source_ids": [
        "velero-how-velero-works"
      ]
    },
    "buyer_evidence_required": [
      "Backup expiry and controller reconciliation schedule",
      "Deletion results and gc-failure labels",
      "Object-store, snapshot and restore inventories"
    ],
    "review_condition": {
      "status": "varexis_review_policy",
      "statement": "Refuse completed retention deletion solely because the TTL has elapsed."
    },
    "unknowns": "Provider residual copies and successful deletion of a buyer backup were not verified.",
    "unknown_finding": {
      "status": "unknown",
      "statement": "Provider residual copies and successful deletion of a buyer backup were not verified."
    },
    "evidence_sources": [
      {
        "source_id": "velero-how-velero-works",
        "url": "https://raw.githubusercontent.com/vmware-tanzu/velero/4ee1e79a7aed367fd9b767b8219ec65bd0c96892/site/content/docs/main/how-velero-works.md",
        "final_url": "https://raw.githubusercontent.com/vmware-tanzu/velero/4ee1e79a7aed367fd9b767b8219ec65bd0c96892/site/content/docs/main/how-velero-works.md",
        "status": 200,
        "captured_at_utc": "2026-10-24T22:29:02.287Z",
        "sha256": "77fcb6bcff071817011c45e44ffaebf2e81b38c42b0569d26064b76f0b3892cf",
        "bytes": 8384,
        "title": "Velero v1.18.4 — how-velero-works",
        "hash_basis": "Decoded HTTP response body bytes",
        "rights_review": "Original bounded paraphrase; source bodies are captured privately and not redistributed. Repository Apache-2.0 licence reviewed.",
        "checked_on": "2026-10-24",
        "capture_status": 200,
        "claim_review_completed": true,
        "reviewed_sections": [
          "Set a backup to expire",
          "Object storage sync",
          "Backed-up API versions"
        ],
        "version_context": "Released Velero v1.18.4 (2026-09-28); pinned vmware-tanzu/velero revision 4ee1e79a7aed367fd9b767b8219ec65bd0c96892. Source documentation is not independent evidence of buyer deployment behaviour."
      }
    ],
    "observed_deployment": false,
    "commercial_reliance_boundary": "Documentation review only; the buyer must establish applicability and actual outcomes. INDEX does not inspect or control the deployment.",
    "paid_value": {
      "decision_context": "Reconcile retention deadlines with actual garbage-collection outcomes.",
      "free": "Complete review, sources, practical questions 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 the pinned source, deployed version, selection policy and retained operation results before relying on a current outcome."
    },
    "buyer_relevance": "Reconcile retention deadlines with actual garbage-collection outcomes.",
    "refusal_conditions": [
      "Refuse completed retention deletion solely because the TTL has elapsed."
    ]
  },
  "niche": {
    "niche_id": "enterprise-ai-data-custody-exit-assurance",
    "label": "Enterprise AI Data Custody & Exit Assurance",
    "classification_id": "custody",
    "classification_label": "AI Data Custody, Retention & Exit Assurance",
    "topic_id": "custody",
    "buyer_intent": "Reconcile retention deadlines with actual garbage-collection outcomes.",
    "comparison_role": "supplementary_discovery"
  },
  "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#velero-backup-expiry-gc-outcomes",
  "machine_readable_record": "/varexis-index/records/velero-backup-expiry-gc-outcomes.json"
}
