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",
]