Storage & Files

Configure file storage providers — S3-compatible and SharePoint — for your project

storages3sharepointfiles

Storage & Files

Every project gets a file storage system for handling uploads and attachments. You can use the built-in default storage or connect your own provider.

Default storage

Every project automatically gets a Default Storage pre-configured with 1 GB of quota. It uses a shared S3 bucket managed by the platform. You do not need to configure anything to start uploading files.

The default storage cannot be deleted or have its provider type changed.

Custom storage providers

You can add additional storage providers connected to your own infrastructure.

S3-compatible storage

Supported providers include AWS S3, Hetzner Cloud Storage, DigitalOcean Spaces, MinIO, and any S3-compatible service.

Required configuration:

Field Required Notes
Access Key ID Yes
Secret Access Key Yes
Bucket name Yes
Region No Required for some providers
Custom endpoint No Required for non-AWS providers

Microsoft SharePoint

Stores files in a SharePoint Online document library.

Required configuration:

Field Required Notes
Site URL Yes e.g., https://yourcompany.sharepoint.com/sites/MyProject
Azure AD Client ID Yes From your App Registration
Azure AD Client Secret Yes From your App Registration
Azure AD Tenant ID Yes
Drive ID No Defaults to the site's default document library

Managing storage

Navigate to Project Settings → Storages to:

  • View all configured storages with usage stats
  • Create a new custom storage
  • Edit an existing storage's configuration
  • Delete a custom storage (the default storage cannot be deleted)

Permissions

Storage uses a dual permission model:

  • Storage management permissions (access) — who can view, edit, or delete the storage configuration
  • File operation permissions (fileAccess) — who can upload, download, or delete files within the storage

Both default to project-level permissions if not explicitly set.

You can configure a storage to allow anonymous file access — for example, letting event attendees upload photos without logging in — by setting the fileAccess field to allow anonymous operations.

→ Developer details: Storage Permissions

API endpoints

Method Path Description
GET /api/projects/{projectId}/storages List all storages
POST /api/projects/{projectId}/storages Create a storage
GET /api/projects/{projectId}/storages/{storageId} Get storage details
PUT /api/projects/{projectId}/storages/{storageId} Update a storage
DELETE /api/projects/{projectId}/storages/{storageId} Delete a storage

Security

  • Storage credentials are stored encrypted
  • Password fields are masked in the UI
  • Storage management requires project update permissions by default
  • File operations require project read/update permissions by default
  • Anonymous access must be explicitly configured (it is off by default)