انتقل إلى المحتوى الرئيسي

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.

Screenshot: Tender attachments panel with file list, version dropdown, and download log

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

  1. Open the tender record.
  2. Go to the Attachments tab.
  3. Click Upload or drag-and-drop.
  4. Pick the category.
  5. (Optional) Write a description.
  6. Click Save. The file enters AV scanning; you'll see a pending status until scan completes.

Step-by-step: upload a new version

  1. Find the existing file in the attachments list.
  2. Click Actions → Upload new version.
  3. Pick the new file.
  4. (Optional) Write change notes.
  5. The new version becomes current; the previous version moves to the version history.

Step-by-step: download

  1. Find the file.
  2. Click Download — a signed URL opens in a new tab.
  3. 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

PermissionWho needs it
TENDER_ATTACHMENT_VIEWBid team
TENDER_ATTACHMENT_UPLOADBid team
TENDER_ATTACHMENT_DELETEBid managers, Admins
TENDER_ATTACHMENT_DOWNLOAD_ALLBid managers, Compliance

See also: Tenders, DMS, API & Webhooks.