Files You Don't Host

Upload, serve, and manage files with permissions. No S3 wiring. No CDN setup. Just works.

AI products need to store files. User uploads, generated content, agent artifacts, images, documents. Without SystemPrompt, you're wiring up S3, configuring CDN, building upload endpoints, and managing permissions. That's infrastructure, not AI.

The Problem

File storage for AI products is deceptively complex:

  • Upload handling: Multipart uploads, chunking, progress tracking
  • Storage backends: S3, GCS, Azure Blob, local filesystem
  • Access control: Who can read? Who can write? Signed URLs?
  • Metadata: File types, sizes, ownership, creation dates
  • Serving: CDN integration, caching headers, range requests
  • Cleanup: Orphaned files, storage quotas, retention policies

Most teams spend 1-2 weeks on "simple" file storage. Then discover edge cases for months.

The Solution

SystemPrompt provides managed file storage:

Simple Upload API

# Upload a file
systemprompt core files upload ./document.pdf

# Upload with metadata
systemprompt core files upload ./image.png --tags "blog,featured"

Tenant-Scoped Storage

Files are automatically scoped to tenants:

# Files are stored with tenant context
storage:
  provider: local  # or s3, gcs
  path: /storage/files
  tenant_isolation: true

User A cannot access User B's files. No manual filtering required.

Permission-Based Access

Control who can access files:

# services/files/config.yaml
files:
  public_path: /files/public
  private_path: /files/private
  require_auth: true
  allowed_types:
    - image/*
    - application/pdf
    - text/*

Every file includes searchable metadata:

# List files with filters
systemprompt core files list --type image --tag featured

# Search file metadata
systemprompt core files search "quarterly report"

# Get file details
systemprompt core files show <file-id>

Serving and CDN

Files are served with proper headers:

  • Content-Type detection
  • Cache-Control headers
  • ETag support
  • Range requests for large files
  • Optional signed URLs for private files

Why This Matters for AI

Agent File Access

AI agents need to read and write files:

# services/agents/document-processor.yaml
name: document-processor
capabilities:
  - file:read
  - file:write
mcp_servers:
  - files-server

The agent can process user uploads and store results. All with proper permissions.

MCP File Tools

Expose file operations to MCP clients:

# services/mcp/files-server.yaml
name: files-server
tools:
  - upload_file
  - download_file
  - list_files
  - delete_file
oauth:
  required: true
  scopes: ["files:read", "files:write"]

Claude Code or ChatGPT can manage files through your MCP server with authenticated access.

Generated Content Storage

AI generates artifacts that need persistence:

  • Generated images
  • Processed documents
  • Analysis reports
  • Code outputs

SystemPrompt stores these with automatic tenant isolation and metadata.

What You Skip

Without SystemPrompt With SystemPrompt
S3 bucket configuration Not needed
Upload endpoint code Built in
Access control logic Automatic
CDN setup Included
Metadata database Included
Signed URL generation Built in

Getting Started

File storage works out of the box:

# Upload a file
systemprompt core files upload ./my-file.pdf

# List your files
systemprompt core files list

# Get a file URL
systemprompt core files url <file-id>

For S3 or cloud storage backends:

# services/files/config.yaml
storage:
  provider: s3
  bucket: your-bucket
  region: us-east-1

See the File Storage Reference for detailed configuration options.