On the day one, when I started my blog, I made a promise that I will share good and not so good side of Sitecore. So far, did not find anything that was very counter intuitive up until now.
One of the main purpose of CMS is to share a piece of repetitive content so you are not changing something in ten different places when there is a need for change, you change one single datasource item that is shared across multiple pages and all pages will reflect the change when the datasource is pushed live either via a workflow based approach or through some kind of publish.
But, the stinky part is that when this specific datasource is shared across multiple pages, all pages will be in some sense updated, but, are never thrown in to a workflow of any sort, they just magically are updated on live website. In many heavy compliance driven environments, it get’s super important to track when a page or any content living on the page has changed. With current inherent behavior of Sitecore, there is no way to track when a page truly changed due to datasource driven modules and how the page and datasources are disconnected for many good reasons.
When asked, Sitecore mentioned that this is possible to do so by tapping and finding related items of the datasource and doing something with those layered related items. It just seems surprising to me that this is not something that is available out of the box.
Below are few references I read up while ensuring that I am not some how dreaming or in an illusion and that Sitecore does support this behavior. Sitecore confirmed that, nope, the page items that use a datasource that has been modified do not go through any workflow and will not be published.
Suggested approach is that you use the Link database and get all references as stated above which per me seems to be expensive operation especially if you do not have a workflow set on datasource templates for instance. In which case, you will already be pushing all datasource templates as true related items when a page is published.
I would love to hear what others do in situations like this. This feature when implemented could come in handy in many situations with all clients that are more Compliance driven due to legal aspects of the site and information they would need to track.
Example of sample approach to read from Link database is below.