Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Powerful Strapi based Soft Delete feature, never loose content again

License

NotificationsYou must be signed in to change notification settings

ChristopheCVB/strapi-plugin-soft-delete

Logo - Strapi Soft Delete plugin

Strapi v4 - Soft Delete plugin

Powerful Strapi based Soft Delete feature, never loose content again

GitHub package.json versionMonthly download on NPM

UI preview

A plugin forStrapi Headless CMS that provides a Soft Delete feature.

✨ Features

  • 🛢 Database
    • Adds_softDeletedAt,_softDeletedById and_softDeletedByType fields to all your collection and single content types. Those fields are not visible in the Content Manager nor through the API.
  • 🗂️ Content Manager & API
    • The delete from the Content Manager & API behaves as a soft delete. It will set_softDeletedAt to the current datetime,_softDeletedById to the action initiator id that deleted it and_softDeletedByType to the type of the delete action initiator.
  • 👤 RBAC
    • TheDelete is renamed toSoft Delete and it is located in theSettings > Roles > Edit a Role > Collection Types | Single Types section.
    • A new admin permission is added to theSettings > Roles > Edit a Role > Collection Types | Single Types section. This is theDeleted Read permission. This will allow the admin role to view the soft deleted entries.
    • A new admin permission is added to theSettings > Roles > Edit a Role > Collection Types | Single Types section. This is theDeleted Restore permission. This will allow the admin role to restore the soft deleted entries.
    • A new admin permission is added to theSettings > Roles > Edit a Role > Collection Types | Single Types section. This is theDelete Permanently permission. This will allow the admin role to delete permanently the soft deleted entries.
    • A new admin permission is added to theSettings > Roles > Edit a Role > Plugins > Soft Delete section. This is the globalRead permission of the plugin. This will allow the admin role to view the Soft Delete item in the Admin left Panel. Accessing this will list all the content types the admin role has access to. They can restore or delete permanently the entries from here depending on the above permissions.
    • A new admin permission is added to theSettings > Roles > Edit a Role > Plugins > Soft Delete section. This is the globalSettings permission of the plugin. This will allow the admin role to view the Soft Delete plugin settings.
  • 🗂️ Soft Delete Explorer (Admin left Panel item): Displays Soft Deleted Collection & Single Type entries
    • ♻️ Entries can be restored with theRestore action. This will set the fields_softDeletedAt,_softDeletedById and_softDeletedByType tonull.
    • 🗑️ Entries can be permanently deleted with theDelete Permanently action. This will delete the entry permanently from the databse.
  • ⚙️ Settings
    • Restoration Behavior: This setting allows you to choose the behavior when restoring an entry.
      • Single Type
        • Soft Delete: Restoring a Single Type entry will restore it to the Content Manager explorer and Soft Delete the existing entry.
        • Delete Permanently: Restoring a Single Type entry will restore it to the Content Manager explorer and Delete Permanently the existing entry.
      • Draft & Publish
        • Draft: Restoring a Draft & Publish entry will restore it to the Content Manager explorer as a draft.
        • Unchanged: Restoring a Draft & Publish entry will restore it to the Content Manager explorer unchanged, meaning that if the entry was published, it will be restored as published.

⛔ Permissions

SectionPermissionDescription
Collection & Single TypesDeleted RestoreAllows the admin role to restore the soft deleted entries.
Collection & Single TypesDeleted ReadAllows the admin role to view the soft deleted entries.
Collection & Single TypesDelete PermanentlyAllows the admin role to delete permanently the soft deleted entries.
PluginsReadAllows the admin role to view the Soft Delete item in the Admin left Panel.
PluginsSettingsAllows the admin role to view the Soft Delete plugin settings.

📦 Compatibility

Strapi VersionPlugin Version
^4.111.0.0
^3Not Supported

This plugin is designed forStrapi v4 and will not work with v3.x.

🚨 Caveats

Because of the way the plugin handles soft deleted entries, there are some caveats to be aware of:

  • Lifecycle hooks:
    • beforeDelete,afterDelete,beforeDeleteMany andafterDeleteMany lifecycle hooks are not triggered when soft deleting entries. Instead, thebeforeUpdate,afterUpdate,beforeUpdateMany andafterUpdateMany are.
    • beforeDelete,afterDelete,beforeDeleteMany andafterDeleteMany lifecycle hooks are triggered when permanently deleting entries.

⏳ Installation

To install this plugin, you need to add an NPM dependency to your Strapi application:

# Using Yarnyarn add strapi-plugin-soft-delete# Or using PNPMpnpm add strapi-plugin-soft-delete# Or using NPMnpm install strapi-plugin-soft-delete

Edit yourconfig/plugins.js|ts orconfig/<env>/plugins.js|ts file and add the following configuration:

// ..."soft-delete":{enabled:true,},// ...

Then, you'll need to build your admin panel:

# Using Yarnyarn build# Or using PNPMpnpm run build# Or using NPMnpm run build

Finally, start your application:

# Using Yarnyarn develop# Or using PNPMpnpm run develop# Or using NPMnpm run develop

🤝 Contributing

Feel free to fork and make a PR if you want to add something or fix a bug.

🛣️ Roadmap

  • 🖧 Server
    • _softDeletedAt field on API Content Types
    • _softDeletedById field on API Content Types
    • _softDeletedByType field on API Content Types
    • Decorate Content Type Entity Services to handle_softDeleted* fields when deleting an entry upondelete ordeleteMany methods
    • Decorate Content Type Entity Services to hide entries uponfind orfindMany methods
    • RBAC Permissions
    • Admin Routes
    • Single Type entry restore special case
    • Draft & Publish support when restoring an entry
    • Audit Logs support
    • Custom Lifecycle Hooks
    • Handle Soft Deleting Components
    • Add tests
  • 🗂️ Soft Delete Explorer
    • Content Types list
    • Entries list
      • Pagination
      • Filters
    • Restore action
    • Delete Permanently action
    • Translation
    • Soft Deleted Entry details
  • ⚙️ Plugin Settings
    • Restoration Behavior
      • Single Type
      • Draft & Publish
    • Deletion Automation

🚮 Uninstall

To uninstall this plugin, you need to remove the NPM dependency from your Strapi application:

# Using Yarnyarn remove strapi-plugin-soft-delete# Or using PNPMpnpm remove strapi-plugin-soft-delete# Or using NPMnpm uninstall strapi-plugin-soft-delete

Edit yourconfig/plugins.js|ts orconfig/<env>/plugins.js|ts file and remove the following configuration:

// ..."soft-delete":{enabled:true,},// ...

Also,if you have edited your API Content Types through the Content Builder, and because the plugin adds fields to it, you'll need to remove them from the schemas manually. The fields are:

  • _softDeletedAt
  • _softDeletedById
  • _softDeletedByType

Then, you'll need to build your admin panel:

# Using Yarnyarn build# Or using PNPMpnpm run build# Or using NPMnpm run build

Finally, start your application:

# Using Yarnyarn develop# Or using PNPMpnpm run develop# Or using NPMnpm run develop

👨‍💻 Community support

For general help using Strapi, please refer tothe official Strapi documentation. For additional help, you can use one of these channels to ask a question:

  • Discord I'm present on official Strapi Discord workspace. Find me byChristopheCVB.
  • GitHub (Bug reports, Contributions, Questions and Discussions)

📝 License

MIT License Copyright (c)ChristopheCVB.

About

Powerful Strapi based Soft Delete feature, never loose content again

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp