Documentation

Document Management

Unified REST APIs for file upload, metadata, and multi-backend storage.

Core model

Document entries track file identity, original name, storage path, mime type, size, generated formats, and optional business links through table_name and table_key.

Storage abstraction

A shared StorageService contract allows the same REST API to run on different backends:

  • S3 or MinIO implementation.
  • Filesystem implementation.
  • Blob storage placeholder branch.

Endpoints

GET    /api/documents
GET    /api/documents/{id}
POST   /api/documents
PUT    /api/documents/{uuid}
PUT    /api/documents/{id}/data
DELETE /api/documents/{uuid}?delete=true

GET /api/documents/{uuid}/download
GET /api/documents/{uuid}/download/{name}
GET /api/documents/{uuid}/webp

On-demand format generation

When a requested format does not exist, the API can trigger asynchronous conversion and return currently available content. Future requests receive cached derivatives.

Async pipeline

Image events are processed asynchronously and generated formats are stored back through the configured storage service implementation.