/strapi-plugin-content-versioning

This plugin enables content versioning in Strapi

Primary LanguageJavaScript

Strapi plugin Content-Versioning

This plugin lets you flip back and forth between different versions of your content, just as they were when you first created them.

🛑 This package has been deprecated

With Strapi version 5 introducing support for draft content versions, the majority of features offered by this plugin repository will become available as core features. Furthermore, providing this functionality as a plugin has proven challenging due to the necessity of keeping pace with new Strapi versions, resulting in numerous issues when fine-tuning for specific versions of Strapi.

Given these considerations, it no longer seems sensible to maintain and develop this plugin, and it is now in standby mode. We are looking forward to V5!

A big thank you to everyone who has made this Strapi plugin a success. Led by Notum, it has received thousands of monthly downloads and has played a crucial role in simplifying the content versioning process for many projects.

⚠️✋ Read before installation

⚠️⚠️ Might not work if DATABASE_CLIENT env variable is not set. More information here.
⚠️ Does not work well with GraphQL (more information)

🙉 What does the plugin do for you?

✅ Provides the ability to switch between different content version as they were created.
✅ Enables you to have multiple draft versions
✅ Keeps a history of all changes, providing the ability to time travel (revert back to previous versions).
✅ Gives you the ability to have different published and draft data

Data about all of the versions can be accessed by adding a parameter like ?populate=versions&publicationState=preview

🧑‍💻 Installation

  1. Install the package with your preferred package manager using one of the commands bellow:
npm i @notum-cz/strapi-plugin-content-versioning
yarn add @notum-cz/strapi-plugin-content-versioning
  1. Create or modify file config/plugins.js and include the following code snippet:
module.exports = ({ env }) => ({
	"content-versioning": {
		enabled:  true,
	},
});
  1. Enabled versioning in the settings of your Content Type (Content-Type Builder -> Edit -> Advanced settings). Same way as localization plugin.
  2. Check if the draft/publish system is enabled on your content type. This is required for the plugin to work.
  3. Roles which should use the plugin must have the appropriate permissions activated, which can be done in Settings > Roles > ... > Plugins view.

💾 Override the Save Button (🚨Deprecated since 1.0.1)

If you are using a version lower than 1.0.1 patch-package has to be used to make the native Save button work with this plugin. We are working closely with the core team to eliminate this extra step.

  1. Install patch-package
    npm install patch-package
    
    yarn add patch-package
    
  2. Create folder patches in the root of your project
  3. Copy file @strapi+admin+4.12.0.patch located in patches/ of this repository to the folder created in the previous step
  4. Add the line "postinstall": "patch-package", to the scripts section of the package.json
  5. Run npm run postinstall

If a patch for your specific Strapi version is missing, please inform us or include it as a file in a pull request. Thank you!

🛣️ Road map

Are any of these features significant to you? Please show your support by giving a thumbs up on the linked issues. This will help us assess their priority on the roadmap.

⛔️ Known limitations

  • ✋ Not working with UID and unique fields
  • ✋ Doesn't work under schemas other than public

🐛 Bugs

We manage bugs through GitHub Issues.
If you're interested in helping us, you would be a rock ⭐.

🧔 Maintainance

The repository is maintained by Ondřej Mikulčík, a member of the Notum Technologies development team.

💬 Community

Join our Discord server to discuss new features, implementation challenges or anything related to this plugin.

🚀 Created with passion by Notum Technologies

  • Official STRAPI partner and Czech based custom development agency.
  • We're passionate about sharing our expertise with the open source community, which is why we developed this plugin. 🖤

✔️ We offer valuable assistance in developing custom STRAPI, web, and mobile apps to fulfill your requirements and goals..
✔️ With a track record of 100+ projects, our open communication and exceptional project management skills provide us with the necessary tools to get your project across the finish line.
📅 To initiate a discussion about your Strapi project, feel free to reach out to us via email at sales@notum.cz. We're here to assist you!


Please contact us at sales@notum.cz

Us helping you with this STRAPI plugin

Keywords