File size: 2,026 Bytes
5fb5c7d 1f94fe4 5fb5c7d 4f0c6ce 1f94fe4 5fb5c7d c3b49d6 1f94fe4 4f0c6ce 5fb5c7d 1f94fe4 ae6bd97 5fb5c7d 1f94fe4 5fb5c7d ae6bd97 1f94fe4 5fb5c7d 1f94fe4 4f0c6ce 5fb5c7d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | """Safety gate for manual dataset uploads (ADR-0011).
Public, non-agent-facing API. An upload is quarantined-until-validated and never
executable, routed through the same manifest/validation machinery a registered
dataset passes, plus an admin approval:
draft_manifest(path) → pre-fill a manifest skeleton from the file (friction aid)
stage_upload(...) → quarantine + type/size/manifest/attestation gate
scan_upload(rec) → content scan (magic-byte; AV only where declared)
validate_upload(rec) → content scan (if not yet run) + manifest/against-data
register_upload(rec) → admin-only promotion into the live registry
Only admins (UPLOAD_ADMIN_IDS) can register; researchers may stage + validate.
"""
from src.uploads.drafting import DraftResult, draft_manifest
from src.uploads.posture import (
POSTURE_AV_REQUIRED,
POSTURE_STRUCTURAL_ONLY,
av_required,
declared_posture,
)
from src.uploads.promotion import RegistrationRefused, register_upload
from src.uploads.records import (
STATUS_QUARANTINED,
STATUS_REGISTERED,
STATUS_REJECTED,
STATUS_VALIDATED,
UploadRecord,
is_admin,
)
from src.uploads.scanning import (
SCAN_CLEAN,
SCAN_INFECTED,
SCAN_SKIPPED,
scan_upload,
)
from src.uploads.staging import (
UploadRejected,
attach_manifest,
discard_upload,
placeholder_manifest,
stage_upload,
)
from src.uploads.validation import validate_upload
__all__ = [
"draft_manifest",
"DraftResult",
"stage_upload",
"attach_manifest",
"discard_upload",
"placeholder_manifest",
"scan_upload",
"validate_upload",
"register_upload",
"UploadRecord",
"UploadRejected",
"RegistrationRefused",
"is_admin",
"SCAN_CLEAN",
"SCAN_INFECTED",
"SCAN_SKIPPED",
"POSTURE_STRUCTURAL_ONLY",
"POSTURE_AV_REQUIRED",
"declared_posture",
"av_required",
"STATUS_REJECTED",
"STATUS_QUARANTINED",
"STATUS_VALIDATED",
"STATUS_REGISTERED",
]
|