Proposed Content Versioning Enhancement for Directus #20372
Replies: 5 comments 3 replies
-
It does make sense |
Beta Was this translation helpful? Give feedback.
-
Choose who can promote a versionHaving the ability to select who can create a draft version of a content or promote it base on the right permissions would improve the management of some scenario where you don't want everybody publishing of affecting your content before its approval. This is a great featured for the content you need to review before affecting the content already published. |
Beta Was this translation helpful? Give feedback.
-
This sounds really great! When thinking about how I might implement this in a newsroom context, it'd be ideal if the permission could also be aware of state/status (or other meta) in the asset. For example, in our newsroom, before an asset is published, it doesn't really matter who can/should edit I haven't implemented versioning yet, so if the above changes the scope too much, I guess a work around would be to make |
Beta Was this translation helpful? Give feedback.
-
Hi @rijkvanzanten, Any updates on this feature? It has more than 15 likes as requested for feature requests. |
Beta Was this translation helpful? Give feedback.
-
Hello, this feature has already received a significant number of votes, and it's clear that the community is eager to see something like this integrated. If it's not too much trouble, I would like to volunteer to work on the implementation. It would be a pleasure for me to contribute. |
Beta Was this translation helpful? Give feedback.
-
Hi all, I've been working on this feature as I have a project with similar needs. I tried to preserve the original UIs from content versioning so my users wouldn't have a steep learning curve. Here are some screenshots: |
Beta Was this translation helpful? Give feedback.
-
Summary
Revised Content Versioning Enhancement Request for Directus
Current Behavior
Desired Behavior
Basic Example
No response
Motivation
The proposed changes would provide the following benefits:
Improved security and data integrity: Requiring a permission to promote a version to main would help to prevent accidental or unauthorized changes to the main version of content. This would improve the security and data integrity of Directus.
Enhanced collaboration: Setting the main version as read-only for a user would allow admins to prevent users from making changes to the main version of content, while still allowing them to view and edit the content in draft versions. This would facilitate collaboration between users and help to ensure that changes to content are reviewed and approved before they are published.
Detailed Design
Following changes could be made to Directus to implement the desired behavior:
Add a new permission called content_version_promote_main.
Update the Content Versions UI to display a warning message to users who try to promote a version to main without the content_version_promote_main permission.
Add a new setting to the Content Versions UI that allows admins to set the main version as read-only for a user.
Requirements List
Must Have:
Require a permission for users to promote a version to main.
Allow admins to set the main version as read-only for a user.
Should Have:
Could Have:
Won't Have:
Drawbacks
Drawbacks of implementing the proposed content versioning enhancement in Directus
Implementation cost: The proposed enhancement would require some additional code to be written and integrated into Directus. This would increase the complexity of the codebase and could make it more difficult to maintain and update.
User space implementation: It is not clear whether the proposed enhancement could be implemented entirely in user space. If it requires changes to the core Directus code, this could make it more difficult to maintain and update.
Impact on teaching Directus: The proposed enhancement could add some complexity to the Directus learning curve. Users would need to learn about the new permissions and settings that are associated with content versioning.
Integration with existing and planned features: The proposed enhancement would need to be integrated with other existing and planned features in Directus. This could be challenging, and it is important to ensure that the enhancement does not break any existing functionality.
Migration cost for existing Directus applications: If the proposed enhancement is a breaking change, it could require existing Directus applications to be migrated to the new version of Directus. This could be a costly and time-consuming process.
Overall, the proposed content versioning enhancement would add some complexity to Directus and could impact the learning curve for new users. It is important to carefully consider the implementation cost, user space implementation, integration with existing and planned features, and migration cost before implementing this enhancement.
Alternatives
Alternatives to the proposed content versioning enhancement in Directus
Implement a third-party content versioning plugin: There are a number of third-party content versioning plugins available for Directus. These plugins can provide similar functionality to the proposed enhancement, but they may not be as tightly integrated with Directus as a native enhancement would be.
Use a separate content management system (CMS) with built-in content versioning: There are a number of CMSs that offer built-in content versioning. These CMSs may provide a more comprehensive set of features for managing content versions than Directus would with the proposed enhancement.
Use a version control system (VCS) to manage content versions: VCSs, such as Git or Mercurial, can be used to manage content versions. This can be a good option for organizations that already use VCSs for other purposes.
Impact of not doing this
If the proposed content versioning enhancement is not implemented, Directus users will not have the ability to require a permission to promote a version to main or to set the main version as read-only for a user. This could make it more difficult to ensure the security and integrity of content, and it could also make it more difficult to collaborate on content.
Adoption Strategy
Breaking Change
The proposed enhancement is a breaking change. It would require changes to the core Directus code, and it would also require changes to the way that existing Directus applications manage content versions.
Migration
It is possible to write a migration script to help existing Directus applications migrate to the new content versioning system. However, this migration script would be complex, and it would require careful testing to ensure that it does not break any existing functionality.
Impact on Other Projects in the Directus Ecosystem
The proposed enhancement would have a significant impact on other projects in the Directus ecosystem. Any third-party plugins or modules that interact with content versioning would need to be updated to support the new system. Additionally, any existing Directus applications that use third-party plugins or modules would need to be updated to use the new versions of those plugins or modules.
Recommended Adoption Strategy
The following is a recommended adoption strategy for the proposed content versioning enhancement:
Create a migration script. The first step is to create a migration script that can be used to update existing Directus applications to the new content versioning system. This migration script should be carefully tested to ensure that it does not break any existing functionality.
Update third-party plugins and modules. Any third-party plugins or modules that interact with content versioning should be updated to support the new system.
Update existing Directus applications. Any existing Directus applications that use third-party plugins or modules should be updated to use the new versions of those plugins or modules.
Release a new version of Directus. Once the migration script, third-party plugins, and existing Directus applications have been updated, a new version of Directus can be released.
Encourage developers to adopt the new content versioning system. Developers should be encouraged to adopt the new content versioning system when they create new Directus applications.
Provide support for developers who are migrating to the new content versioning system. The Directus team should provide support for developers who are migrating to the new content versioning system. This support could be provided in the form of documentation, tutorials, or one-on-one assistance.
By following this recommended adoption strategy, the Directus team can help to minimize the impact of the proposed content versioning enhancement on existing Directus developers and projects.
Unresolved Questions
No response
Beta Was this translation helpful? Give feedback.
All reactions