strapi-plugin-publish-media-validation
v1.1.3
Published
Strapi v5 plugin that enforces required media fields at publish time — works around the known limitation where required: true on media fields is not validated on publish.
Downloads
418
Maintainers
Readme
strapi-plugin-publish-media-validation
A Strapi v5 plugin that enforces required: true on media fields at publish time.
Why this exists
Strapi v5 validates required: true on scalar fields (string, integer, etc.) when publishing, but skips that check for media fields (type: "media"). This means a content manager can publish an entry with a missing required banner, thumbnail, or any other required image/file — even though the field is marked as required in the schema.
This plugin intercepts the Document Service publish action and blocks it if any required media field is empty, returning a clear error message instead of silently allowing the publish.
Installation
npm install strapi-plugin-publish-media-validation
# or
yarn add strapi-plugin-publish-media-validation
# or
pnpm add strapi-plugin-publish-media-validationpnpm users
Because @strapi/utils is a peer dependency and pnpm does not hoist packages by default, you also need to add it as a direct dependency:
pnpm add @strapi/utilsUsage
No configuration needed. Once installed, the plugin automatically scans every content type's schema on publish and blocks any entry where a required: true media field is empty.
Example schema:
{
"banner": {
"type": "media",
"multiple": false,
"required": true,
"allowedTypes": ["images"]
}
}If you try to publish without a banner, the admin panel will show:
The following required media fields are empty: Banner
How it works
The plugin registers a Document Service middleware that:
- Runs on every
publishaction across all content types - Reads the model schema to find
type: "media"fields withrequired: true - Fetches the draft document and checks each required media field
- Throws a
ValidationErrorlisting any empty fields, which Strapi maps to a 400 response with the message shown in the admin UI
Compatibility
| Strapi version | Supported | |----------------|-----------| | v5.x | ✅ | | v4.x | ❌ |
