Archive/Restore Options for Sitecore

versions

There are many legally obligated companies that would still pick Sitecore for it’s immense power and flexibility that comes out of the box and the constant push towards reaching marketing goals is one of the other main reason why.

The biggest challenges they are facing currently is the legal battles these heavy financial companies face to maintain old/stale data for compliance reasons.  Even if they have a third party crawler of some sort that would capture screenshots of how sites are rendered at scheduled times, due to Personalization and other contextual driven content, they do need some way to tap on to all history and can not risk loosing it for Audit purposes.

I have seen some clients that kept storing all versions in all languages which would lead to bad performance of content editor and slow content authoring experience.  Sitecore recommends not more than 10 versions to be stored on CM side.

I have been researching to find few decent options to steer them to correct path which is to trim their versions.  I must say that I could not find next to none which are robust and easy to use, especially that utilize Sitecore Archiving instead of Serialization to a item file on file system.  I sure found couple blogs and references to build something, but, it would be nice to have feature which would be harnessed and appreciated by most of the audit heavy clients.

Would love to get some feedback and tools you all typically use for Archiving the outdated Item versions.  Do note that this should work on a load balanced CM environment. 🙂

Looking forward to hear any feedback on this, I currently, based on research out there found three options overall and I am listing down pros and cons on each.  But, if any of you know more, please reach out.

Option 1 – Manual Route

Sitecore provides manual way for content author to archive versions on need basis and there is a UI that could be utilized to restore the version of choice.

https://doc.sitecore.net/sitecore_experience_platform/82/content_authoring/managing_items/general/archive_and_restore_an_item

Option 2 – Custom with a Twist

The Guru, John west, has a blog that is neat and could help with a solution that could be custom built.

https://community.sitecore.net/technical_blogs/b/sitecorejohn_blog/posts/rules-engine-actions-to-remove-old-versions-in-the-sitecore-asp-net-cms

Also, I did find a module that took inspiration from option 3 that is coming next and blog provided above, but, unfortunately it does not support multi-lingual at this time and customization would be needed to be able to use the same.

Introducing the ‘Sitecore Version Pruner’ shared source module!

Option 3 – The Legacy Module (Version Manager)

https://marketplace.sitecore.net/en/Modules/Version_Manager.aspx

If you have ever read through performance tuning document, Sitecore did recommend on versions 7 to have in version manager to help mitigate number of versions.

FYI, currently due to lack of time, the module is not being actively maintained per author’s comment, but, it could be tested and utilized if your business demands are satisfied.  But, do note that this uses file serialization mechanism for restoration and archiving, so, it would be tedious to restore and not as straight forward as Archiving that is possible on later versions of Sitecore.

 

I had created sitecore support ticket to find out if there is more that I can quickly go ahead and use and the answer was no, so, they created a feature request, would love to get this ticket escalated.  If you wish to track it, here is the number – 198728

Did you know – Broken links report considers all versions

broken

As soon as I come across some thing new and is a small piece of info, but, could be useful, I can immediately think about my Did you know series.  This would be a latest addition to the pile.

Interesting piece of information that I bumped in to yesterday while running Broken Links report on a huge database  and sitecore instance that has many versions on CM side of things in many different languages.  When I run the broken link report, there were huge number of items listed on the report and I randomly picked bunch of those to check more deeply.  Most of them were outdated and old versions.

I immediately thought there should be a way to force Sitecore not to consider old versions when running broken links report.  Unfortunately, there is no way to do so currently.   When I dig deeper in code of kernel, I did see the default is to consider all versions.

Code versions

I got a feature request logged with sitecore if you like to track it, here is the reference number – 178492

If you really need this feature, then, the only other way is to build your own Speak View and scanner that could be custom function to grab only the latest version of each item in each language to keep the list to what you really care about. 🙂