Tender Attachments
Tender packages are file-heavy. The Tender Attachments module is the secure, versioned, cloud-backed storage layer that sits underneath the Tenders workflow.
Overview
Tender attachments are stored in Cloudinary with a per-tenant folder and signed-URL access. Every download is logged. Every version is preserved. The module enforces a 100 MB per-file cap and integrates with antivirus scanning.
Key concepts
File. A single attached file with a name, category, version chain, and metadata (mime type, size, uploader, upload date).
Version chain. When you upload a new version of an existing file, the previous version is preserved. The "current" version is what shows in the file list; older versions are accessible from the version dropdown.
Category. Files belong to a category — technical, commercial, legal, HSE, drawings, schedule, other. Categories drive who can see what.
Signed URL. When a user clicks Download, ORKSTRA generates a short-lived signed URL (default 5 minutes). The URL is not shareable — it is bound to the user's IP and session.
Antivirus. Every upload goes through ClamAV scanning before being made available. Infected files are quarantined and the uploader is notified.
Step-by-step: upload a file
- Open the tender record.
- Go to the Attachments tab.
- Click Upload or drag-and-drop.
- Pick the category.
- (Optional) Write a description.
- Click Save. The file enters AV scanning; you'll see a pending status until scan completes.
Step-by-step: upload a new version
- Find the existing file in the attachments list.
- Click Actions → Upload new version.
- Pick the new file.
- (Optional) Write change notes.
- The new version becomes current; the previous version moves to the version history.
Step-by-step: download
- Find the file.
- Click Download — a signed URL opens in a new tab.
- The download is logged with timestamp, user, IP, and user-agent.
Common tasks
- Bulk download: select multiple files and click Download as ZIP — a single ZIP is generated and emailed when ready (5-15 minutes for large packages).
- Share a link: Actions → Share link generates a tokenized link with configurable expiry (max 30 days).
- Quarantine review: admins can review quarantined files in Admin → Security → Quarantine.
- Move a file: drag between categories to recategorize.
Troubleshooting
- "Upload fails with 'file too large'." — The 100 MB cap is hard. Split the file, or use DMS which supports up to 5 GB.
- "Download link is expired." — Signed URLs expire in 5 minutes. Click Download again to regenerate.
- "File stuck in 'Scanning'." — Most scans complete in seconds. If a file is stuck for more than 5 minutes, the AV service is back-pressured — try again in a few minutes or contact support.
- "Quarantined file" — The AV scanner flagged something. The file is not accessible. Either the file is genuinely infected, or it's a false positive — contact support with the file ID for re-scan.
Limits
- Max file size: 100 MB.
- Max files per tender: 500.
- Total storage per tenant: per the Premium plan.
- Supported file types: PDF, DWG, DXF, IFC, JPG/PNG, XLSX/XLS, DOCX/DOC, PPTX, ZIP, MP4.
Permissions reference
| Permission | Who needs it |
|---|---|
TENDER_ATTACHMENT_VIEW | Bid team |
TENDER_ATTACHMENT_UPLOAD | Bid team |
TENDER_ATTACHMENT_DELETE | Bid managers, Admins |
TENDER_ATTACHMENT_DOWNLOAD_ALL | Bid managers, Compliance |
See also: Tenders, DMS, API & Webhooks.