{
  "schemaVersion": "eve.attachment-artifact-lifecycle.v1",
  "initiativeId": "eve-sota-gap-closure-2026-09-01",
  "taskId": "14.8",
  "evaluatedOn": "2026-09-16",
  "policy": {
    "missingEvidenceDefault": "block",
    "publicRawObjectAccess": "prohibited",
    "maxSignedPermalinkHours": 24,
    "maxBiometricRetentionDays": 30,
    "sessionDeletionRequiresZeroResiduals": true,
    "engineeringMayNotClaimCompliance": true
  },
  "officialSources": [
    {
      "id": "owasp-file-upload",
      "authority": "OWASP Cheat Sheet Series",
      "url": "https://cheatsheetseries.owasp.org/cheatsheets/File_Upload_Cheat_Sheet.html",
      "retrievedOn": "2026-09-16",
      "claimBoundary": "Defense-in-depth upload guidance supports allowlisting, signature/content validation, generated names, size limits, authorization, isolated storage, and malware scanning; it is guidance rather than a compliance certification."
    },
    {
      "id": "aws-presigned-url",
      "authority": "Amazon Web Services",
      "url": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html",
      "retrievedOn": "2026-09-16",
      "claimBoundary": "AWS documents presigned URLs as time-limited bearer access whose capabilities derive from the signing principal; this record imposes a stricter product ceiling and never treats a URL as public authorization."
    },
    {
      "id": "nist-privacy-framework",
      "authority": "United States National Institute of Standards and Technology",
      "url": "https://www.nist.gov/privacy-framework",
      "retrievedOn": "2026-09-16",
      "claimBoundary": "The NIST Privacy Framework is a voluntary risk-management reference and not a legal compliance determination."
    },
    {
      "id": "eu-gdpr",
      "authority": "EUR-Lex",
      "url": "https://eur-lex.europa.eu/eli/reg/2016/679/oj/eng",
      "retrievedOn": "2026-09-16",
      "claimBoundary": "GDPR supplies official legal text relevant to minimization, storage limitation, access, and erasure; applicability and satisfaction remain counsel-owned under Task 14.6."
    }
  ],
  "assetKinds": ["uploaded-attachment", "generated-artifact", "generated-media", "share", "export"],
  "sensitivityClasses": ["public", "internal", "personal", "sensitive", "biometric"],
  "deletionPartitions": [
    "object-storage",
    "metadata",
    "memory",
    "trace",
    "backup",
    "share",
    "export"
  ],
  "controls": [
    {
      "id": "classification",
      "decision": "block-on-missing-or-residual-evidence",
      "requiredEvidence": ["asset kind", "plane", "sensitivity", "session", "subject", "tenant"],
      "sourceBindingRefs": ["lifecycle-contract"]
    },
    {
      "id": "upload-scanning",
      "decision": "block-on-missing-or-residual-evidence",
      "requiredEvidence": [
        "magic-byte type",
        "bounded size",
        "malware scan",
        "content-policy scan",
        "clean verdict"
      ],
      "sourceBindingRefs": ["upload-protocol", "upload-scan", "lifecycle-contract"]
    },
    {
      "id": "minimization",
      "decision": "block-on-missing-or-residual-evidence",
      "requiredEvidence": ["minimization applied", "retained fields", "excluded fields"],
      "sourceBindingRefs": ["lifecycle-contract", "assistant-checkpoint"]
    },
    {
      "id": "provider-transfer",
      "decision": "block-on-missing-or-residual-evidence",
      "requiredEvidence": [
        "provider identity",
        "approved review",
        "review evidence",
        "bounded provider retention"
      ],
      "sourceBindingRefs": ["lifecycle-contract"]
    },
    {
      "id": "retention-and-backup",
      "decision": "block-on-missing-or-residual-evidence",
      "requiredEvidence": [
        "primary expiry",
        "backup deletion deadline",
        "30-day biometric ceiling"
      ],
      "sourceBindingRefs": ["lifecycle-contract", "recovery-journal"]
    },
    {
      "id": "permalink-access",
      "decision": "block-on-missing-or-residual-evidence",
      "requiredEvidence": [
        "private or signed access",
        "token digest only",
        "expiry within 24 hours",
        "revocation before deletion"
      ],
      "sourceBindingRefs": ["lifecycle-contract", "asset-store"]
    },
    {
      "id": "data-subject-export",
      "decision": "block-on-missing-or-residual-evidence",
      "requiredEvidence": [
        "included artifact evidence or explicit exclusion reason",
        "exact subject collector"
      ],
      "sourceBindingRefs": ["lifecycle-contract", "export-bundle"]
    },
    {
      "id": "session-erasure",
      "decision": "block-on-missing-or-residual-evidence",
      "requiredEvidence": [
        "all object versions erased",
        "metadata erased",
        "memory erased",
        "traces erased",
        "backup erased",
        "shares erased",
        "exports erased",
        "zero residual reads before session deletion"
      ],
      "sourceBindingRefs": [
        "lifecycle-contract",
        "artifact-object-erasure",
        "subject-erasure",
        "recovery-journal"
      ]
    }
  ],
  "sourceBindings": [
    {
      "id": "lifecycle-contract",
      "source": "apps/oshun/bff/src/media-lifecycle/session-media-lifecycle.ts",
      "includes": [
        "MEDIA_LIFECYCLE_PARTITIONS",
        "evaluateMediaLifecycleAdmission",
        "signed permalink must expire within 24 hours",
        "eraseSessionMediaLifecycle",
        "deleteSessionWithMediaLifecycle",
        "media_lifecycle_registry_residual"
      ]
    },
    {
      "id": "upload-protocol",
      "source": "apps/oshun/bff/src/generation/human-video-upload-session.ts",
      "includes": [
        "sniffMediaType",
        "MAX_BYTES_BY_KIND",
        "deriveObjectKey",
        "quota_bytes_exceeded",
        "digestSha256"
      ]
    },
    {
      "id": "upload-scan",
      "source": "apps/oshun/bff/src/generation/human-video-upload-scan.ts",
      "includes": [
        "detectDecompressionBomb",
        "detectTrailingPayload",
        "malwareScanner",
        "contentClassifier",
        "UploadScannerNotConfiguredError"
      ]
    },
    {
      "id": "asset-store",
      "source": "apps/oshun/bff/src/assets/asset-store.ts",
      "includes": ["getSignedDownloadUrl", "deleteAllVersions", "signedUrl"]
    },
    {
      "id": "artifact-object-erasure",
      "source": "apps/oshun/bff/src/generation/generated-artifact-object-store.ts",
      "includes": [
        "deleteAllVersions",
        "generated_artifact_object_store_unconfigured",
        "storageBucket",
        "storageKey"
      ]
    },
    {
      "id": "subject-erasure",
      "source": "apps/oshun/bff/src/generation/generated-artifact-erasure.ts",
      "includes": [
        "withSubjectBarrier",
        "outputCatalog",
        "outputGallery",
        "generationJobs",
        "additionalPartitions"
      ]
    },
    {
      "id": "export-bundle",
      "source": "apps/oshun/bff/src/data-export/bundle-builder.ts",
      "includes": [
        "generated_artifact",
        "canonicalGeneratedOutputs",
        "coverageGaps",
        "bundleSha256"
      ]
    },
    {
      "id": "assistant-checkpoint",
      "source": "apps/oshun/bff/src/assistant/assistant-session-store.ts",
      "includes": [
        "Full raw turns deliberately stay out",
        "ASSISTANT_SESSION_TTL_MS",
        "purgeExpiredDurably"
      ]
    },
    {
      "id": "recovery-journal",
      "source": "apps/oshun/bff/src/data-deletion/recovery-deletion-journal.ts",
      "includes": [
        "RecoveryDeletionJournal",
        "recordCompletedDeletion",
        "replayRecoveryDeletionJournal"
      ]
    }
  ],
  "limitations": [
    {
      "id": "not-legal-advice",
      "statement": "This record proves engineering controls and retained test evidence, not legal compliance, lawful basis, or satisfaction of any data-subject request."
    },
    {
      "id": "provider-confirmation",
      "statement": "A provider transfer or provider-side deletion remains blocked unless the provider-specific reviewed evidence and acknowledgement are available."
    },
    {
      "id": "backup-boundary",
      "statement": "Backup deletion means the governed deletion deadline and independently recorded recovery/deletion evidence; it does not claim immediate physical overwrite of every backup medium."
    },
    {
      "id": "signed-url-boundary",
      "statement": "Signed URLs are bearer capabilities; only token digests are retained in lifecycle evidence and deletion revokes access before removing registry rows."
    }
  ]
}
