anne-voigt's picture
feat(uploads): ADR-0011 manual-upload safety gate (Now slice)
74d4e89 verified
Raw
History Blame
1.17 kB
"""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:
stage_upload(...) → quarantine + type/size/manifest/attestation gate
validate_upload(rec) → manifest-schema + against-data validation
register_upload(rec) → admin-only promotion into the live registry
Only admins (UPLOAD_ADMIN_IDS) can register; researchers may stage + validate.
"""
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.staging import UploadRejected, stage_upload
from src.uploads.validation import validate_upload
__all__ = [
"stage_upload",
"validate_upload",
"register_upload",
"UploadRecord",
"UploadRejected",
"RegistrationRefused",
"is_admin",
"STATUS_REJECTED",
"STATUS_QUARANTINED",
"STATUS_VALIDATED",
"STATUS_REGISTERED",
]