Use File for one document and Files for a collection. They are managed fields for PDFs, presentations, spreadsheets, archives and other allowed formats. They do not generate resized image variants and do not replace Image/Gallery.
Configure in Generator UI
- Select Local files or S3 in Project settings → Storage → File storage. This is independent of Image storage.
- Open a persistent entity in Content → Add field and choose File or Files.
- Set the name and required behavior. In File settings, enter allowed extensions such as pdf, pptx, docx and the maximum size per file.
- For Files, set Maximum files: 1–50, default 10.
- Finish → Save → Generate. Review and apply required migrations with
make migrate.
The upper limit is 150 MiB per file (157286400 bytes); you can set a smaller limit. It is not a collection-wide limit. Also check host Nginx/reverse-proxy upload limits: a smaller client_max_body_size rejects requests before they reach backend.
Extensions have no leading dot. Server validation is not antivirus scanning and does not guarantee safe content. Your team can add further processing/inspection when needed.
Use the admin interface
Open a record, select files and save it. The record displays document metadata and download access; Files stores multiple attachments. Server-side Create/Update/Delete permissions and Demo mode constrain mutations. A disabled browser button is not the authorization boundary.
File/Files are not scalar strings: ordinary searchable/filterable/sortable, unique and primary-key settings are unavailable. Use a normal URL only when another system owns the document's storage and lifecycle.
API values
A file reference contains assetId and available metadata name, mimeType, size and url. A collection returns multiple references. Do not derive IDs from filenames or attach files through raw SQL without native inventory handling. The server implements download access; showing a value in custom UI does not grant file access.
Persistent Local paths and S3 parameters belong in runtime/deployment settings. Credentials do not belong in the manifest or public documentation.
Transfer and backups
The database stores references/metadata; the separate file store contains bytes. A pg_dump alone does not move PDFs or videos. Use native files-snapshot with the database and a separate media-snapshot for images. Follow Transfer to a new VPS and Backup/restore for a consistent sequence.
For a custom viewer, processing or delivery rules, use Backend custom and Custom admin, retaining server authorization.