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.