Allow adding custom fields to the media (Upload) collection type, like users-permissions does
Warden
Strapi version:
v5---
What I'm asking for
The ability to extend the
plugin::upload.file
collection type with custom fields through the Content-Type Builder — the same way the users-permissions
plugin lets you add extra fields to the User collection type.Current behaviour
The
plugin::upload.file
schema is fixed and cannot be extended. The Content-Type Builder does not expose it as an editable type. Workarounds require maintaining a separate shadow collection with a relation back to the file, which complicates queries and means asset metadata lives outside the media library.Expected behaviour
- The Content-Type Builder shows an "Upload" section alongside other plugin-owned types
- Developers can add fields to it: text, number, boolean, date, enumeration, relation — the same field types available on any collection type
- Custom fields appear and are editable in the asset detail panel inside the media library
- Custom fields are included in Upload API responses alongside the built-in fields
- Schema changes survive upgrades without manual migration
Example custom fields
- copyright(text) — photo credit line for licensed imagery
- expiresAt(date) — flag assets that should no longer be used after a campaign ends
- approvedForMarketing(boolean) — editorial approval toggle for brand assets
- property(relation to a Property content type) — link listing photos directly to the property they belong to
Why this matters
The
users-permissions
User type extension is one of the most-used Strapi features precisely because real applications need more than the defaults. The same is true for media: in property management, e-commerce, and publishing, assets carry domain-specific metadata that belongs on the asset itself. The current workaround of a parallel shadow collection is fragile, harder to query, and invisible in the media library UI.