API-only service: audio analysis, PDF template generation, and contact storage (MinIO-backed files). OpenAPI below includes all routes.
POST /api/misc/audio/durationGet MP3 file durationPOST /api/misc/templates/generateGenerate PDF from template (flattened)POST /api/misc/templates/generateEditableGenerate PDF from template (editable)All storage routes require STORAGE_API_STATIC_TOKEN via Authorization: Bearer … or X-Api-Key.
POST /api/storage/sectionsCreate section (body: contact_id, contact_name)GET /api/storage/sections?page=1&pageSize=20List sections (optional query= search)GET /api/storage/sections/{contactId}Section + file listGET /api/storage/sections/{contactId}/filesList filesPOST /api/storage/sections/{contactId}/filesUpload (multipart, field: file)GET /api/storage/sections/{contactId}/files/{fileId}File metadataGET /api/storage/sections/{contactId}/files/{fileId}/downloadRedirect to presigned URL