Intake Engine
100% automated, deterministic PASS/FAIL — no human handling.
Upload Requirements
- ZIP or individual files (PDF, DOCX, XLSX, PNG, JPG, CSV, JSON, TXT)
- Maximum upload size: 100 MB
- If you upload individual files, the system bundles them automatically
- Executable content is blocked
- No nested archives beyond 2 levels
Note: the Verify portal has its own 25 MB limit because it verifies issued kit.zip files locally in the browser. That limit is separate from the intake ZIP upload limit.
Pipeline overview
- Upload: Submit a ZIP or individual files (PDF, DOCX, XLSX, CSV, JSON, PNG, JPG, TXT). Max 100 MB per upload. Individual files are bundled automatically.
- Extract & normalize: ZIP contents are extracted. Each file is renamed to a deterministic, conflict-free path preserving the original structure via
mapping.json. - Classify: Every file is classified into one of 10 artifact buckets:
contracts,policies,reports,security,controls,tickets,exports,evidence,screenshots,unknown. Classification uses filename tokens, folder path analysis, content sniffing (PDF title, JSON keys, CSV headers), and extension-based type detection. Confidence scores are computed per bucket in [0, 1]. - Validate: The system checks that all required artifact groups are present with at least one file meeting the 0.90 confidence threshold:
policies— at least one policies filereports_or_security— at least one reports or security filecontracts— at least one contracts fileevidence_or_controls— at least one evidence or controls file
- PASS / FAIL: If all required groups are satisfied →
PASS. Otherwise →FAILwith a detailed report listing missing groups, low-confidence files, and suggested remediation. - Kit issuance (PASS only): On PASS, the system produces:
kit.zip— normalized evidence kitmanifest.json— SHA-256 hashes for every filereceipt.json— issuer-signed receipt (Ed25519)- Offline verifier bundle for hash + signature validation without internet
diff.json(optional) — file-level diff vs previous kit whendiff_scope_idis provided
API endpoints
| Method | Path | Description |
|---|---|---|
POST | /v1/intake/jobs | Create a new job (returns upload URL) |
POST | /v1/intake/jobs/{id}/upload | Upload ZIP or individual files for processing |
GET | /v1/intake/jobs/{id} | Get job status |
GET | /v1/intake/jobs/{id}/artifacts | Get download URLs for outputs |
Supported file types
ZIP contents may include: .pdf, .docx, .xlsx, .csv, .json, .png, .jpg, .jpeg, .txt, .md, .html. Images are classified as screenshots and do not satisfy required artifact groups.
Determinism contract
Same input ZIP → same classification, same PASS/FAIL result, same kit structure. Versioned via FES-DIFF-1.0 scope. No randomness, no LLM dependency, no human judgment.
