Enterprise File Infrastructure

The file layer every product needs

FileNest sits between your application and cloud storage — providing upload, processing, search, compliance, and webhook delivery as a managed API. Like Stripe for files.

upload.ts
import { FileNest } from "@filenest/node";

const fn = new FileNest({ apiKey: process.env.FILENEST_API_KEY });

const file = await fn.files.upload({
  filename: "contract.pdf",
  data: buffer,
  mimeType: "application/pdf",
  metadata: { clientId: "acme-corp", type: "contract" },
});

console.log(file.id); // fn_file_01JXZ...

Everything a file API needs to be

Stop re-building file management for every product. FileNest gives you the infrastructure layer in one API call.

Multi-provider Upload

Drag-and-drop, multipart, and resumable uploads to S3, R2, Azure Blob, GCS, MinIO, or your own storage — same API everywhere.

Processing Pipelines

Configurable pipelines run virus scanning, MIME validation, OCR, PHI detection, thumbnail generation, and AI embeddings automatically after upload.

Full-text Search

OpenSearch-backed search across filenames, custom metadata, tags, and OCR-extracted text. Faceted filters and relevance ranking out of the box.

Compliance & Governance

WORM immutability, legal hold, configurable retention policies, GDPR right-to-erasure, and 7-year audit logs with tamper-evident storage.

Event Webhooks

Every file state change emits a signed webhook. Configurable endpoints, automatic retries with exponential back-off, and delivery logs.

SDKs for Every Stack

First-class SDKs for Node.js, Python, and React. @filenest/react ships drop-in upload and file browser components — wire up in minutes.

True Multi-tenancy

Organizations → Projects → Files. Row-level tenant isolation, team RBAC, API key scoping, and per-project storage configuration.

Security by Default

Short-lived upload tokens for browsers, scoped API keys with prefixes, encrypted secrets at rest, and a full audit trail on every mutation.

One API, every language

First-class SDKs for your stack — typed, async, and production-ready.

import { FileNest } from "@filenest/node";

const fn = new FileNest({
  apiKey: process.env.FILENEST_API_KEY!,
  projectId: process.env.FILENEST_PROJECT_ID!,
});

// Upload a file
const file = await fn.files.upload({
  filename: "report.pdf",
  data: buffer,
  mimeType: "application/pdf",
  metadata: { clientId: "acme", type: "invoice" },
});

// Get a signed download URL (60 min TTL)
const { url } = await fn.files.getDownloadUrl(file.id, { ttl: 3600 });

// Search
const results = await fn.search.query({ q: "invoice 2026" });

Install with npm install @filenest/node

Compliance

Governance built in, not bolted on

Every compliance feature is configuration-driven. Turn on HIPAA controls, WORM storage, or GDPR deletion workflows per project — no code changes required.

Learn more

WORM Immutability

Write-once read-many locks prevent deletion or modification — meets SEC 17a-4 and FINRA requirements.

Legal Hold

Instantly place files under legal hold with a reason and indefinite or date-bounded retention. Survives project-level deletions.

PHI & PII Detection

Processing pipeline stage scans uploads for protected health information and personally identifiable data before storage.

Retention Policies

Per-project configurable retention periods. Auto-delete or archive on expiry. GDPR right-to-erasure respects legal holds.

Storage Abstraction

Bring your own storage

FileNest sits in front of any S3-compatible object store. Switch providers by changing one environment variable — your application code never changes.

S3
R2
Azure
GCS
MinIO
S3-API

Phase 1 ships with S3/MinIO/RustFS. Azure, GCS, R2, and B2 arrive in Phase 7.

Ready to ship file infrastructure?

Create an organisation, generate an API key, and make your first upload in under 5 minutes.