Uploading documents — bRRAIn Docs
Supported file types, upload methods, size limits, bulk upload, and the processing pipeline.
Uploading documents
The Document Portal accepts a wide range of file formats through four distinct upload methods.
Supported file types
| Category | Formats | | --- | --- | | Documents | PDF, DOCX, DOC, ODT, RTF, TXT, MD | | Spreadsheets | XLSX, XLS, CSV, ODS | | Presentations | PPTX, PPT, ODP, KEY | | Images | PNG, JPG, JPEG, GIF, WEBP, HEIC, SVG | | Audio | MP3, WAV, FLAC, M4A, OGG | | Video | MP4, MOV, AVI, WEBM, MKV | | Archives | ZIP, TAR.GZ, 7Z (auto-extracted) | | Custom | Any binary format — stored as opaque blob |
Upload methods
1. Drag-and-drop in the web UI
Visit https://app.brrain.io/documents, select a workspace, and drag files onto the upload zone. Multiple files and folders are supported; progress is shown per file.
2. CLI (brrain docs upload)
brrain docs upload ./contracts --workspace legal-team --classification internal
The CLI mirrors folders as nested paths and preserves modified timestamps.
3. Desktop Sync (recommended for >1000 docs)
Install Desktop Sync on macOS, Windows, or Linux. Sync a local folder and every change is replicated into the Portal with diff-level granularity.
4. API / SDK
file, _ := os.Open("./report.pdf")
defer file.Close()
doc, err := portal.Upload(ctx, &portal.UploadInput{
Workspace: "legal-team",
Classification: portal.Internal,
Filename: "report.pdf",
Reader: file,
})
File size limits
| Limit | Value | | --- | --- | | Single file | 100 GB | | Concurrent uploads | 16 per session | | Workspace total | Plan-dependent (see Overview) |
Large files are chunked automatically; interrupted uploads resume from the last confirmed chunk.
Bulk upload
For migrations from Google Drive, Dropbox, or SharePoint, use the migration wizard at app.brrain.io/migrate. Supported sources include:
- Google Drive (OAuth)
- Dropbox (OAuth)
- OneDrive / SharePoint (OAuth)
- AWS S3 (IAM role)
- Local folder via Desktop Sync
- ZIP archive upload (decompressed and ingested)
A typical 100K-document migration completes in 4–8 hours, with no duplicate documents thanks to content-hash deduplication.
Processing pipeline at a glance
Each upload flows through the same five-step pipeline:
Client upload
↓
Envelope encryption (user-derived key)
↓
Metadata extraction (filename, size, mime, hash, dimensions)
↓
Handler summarization + entity extraction
↓
Atomic write: Vault file + graph nodes/edges + audit log
See Ingestion pipeline for the detailed internal flow, SLAs, and retry behavior.