Strapi Review Workflow and Versioning

I wonder if strapi can do the following:

Our customer has a process of approval. That means a page is in an edit state and then in an approval state and if it is approved, it can be published.

Later, we make some changes to that page and again it goes through an approval process (while the old version is published, so we need some kind of versioning)

Is this possible with the strapi enterprise version or some plugins?

I checked the enterprise version, but I am not sure if that’s what we need. It looks like we can create a review workflow, but it is only informal (?). We can see that a page is “in review” in strapi, but that’s all.

  • Can we use Graphql to ask for pages only that have been approved?
  • Is content versioning possible?
  • Or should we consider developing our own plugin?
  • Will Strapi 5 maybe have such a feature?