2015-04-23

IT/Tech: "Lost", deleted attachments in Confluence: Did you ever tried to restore one?

Introduction

Together with several people I am working on a start-up. Naturally you are seeking for something to collaborate. We decided to use Atlassian Confluence - it's a well working well known environment and if you decide against its online version - which is as of the time writing this entry here slow as hell from my point of view - you have aside other aspects, tons of plugins that make Confluence a great choice.

Not to talk about the costs - the entry level is really a bargain, same for most plugins as well.


That said, we...

we started to use it now for a while. Since some weeks my co-writers start to experience that there is a versioning function, so we finally could use this instead of having attachments as on a file server stating filename_userid.extension...

So far so good.


Now, it happened that someone uploaded the 'wrong' version of an attachment. Smart as he was, he didn't just comment it and uploaded the next version - no, he decided to delete just this version. The only existing 'delete' button implicated to him, as to many people I know from different projects, that he could exactly delete the last version instead of deleting the whole attachment.

So the journey began...

... since Atlassian has and had always a weird conception if it comes to implementation of something their users want but their developers don't see - or whatsoever.

Let's make a long story short: Atlassian sometimes forgets to implement from a heart and soul perspective and does it only with minimal investment and medium use of brain.

Sorry, being polemic but the attachment restore disaster I just had still keeps me a bit pissed.

The journey began...

  • ... first thought: There must be an undelete function... nothing found in the GUI.
  • Next stop, the search machines... result for "undelete attachment in confluence" among other search versions: Retrieve file attachments from a backup... well, sounds good - a light at the end of the tunnel?

    Oh no, it's for version 3.5, entirely outdated... yeah, but they must have done something to make this better - it's four years old by now... Click on "Confluence latest" in the left documentation section. Using the search function within this documentation with the headline of the older document... guess what:

    A hit, one document, explanation for the CURRENT version of the product.

    I was excited... until... I had to realize it is, as we say in Germany, old wine in new bottles... nothing, really N O T H I N G changed in the past five years.

    One may say, never change a running system, but this person for sure never had to restore a file in Confluence.
  • Since we needed the versions back, I decided to restore the last backup we had.

    Against! the advice of Atlassian, we create a nightly backup including the attachments.

    Note: 
    Atlassian is not advising against the attachment backup but against using the backup functionality in Confluence on a scheduled base...

    However, no one this morning changed something - except for the one file accidentally deleted of course.
  • So I thought: let's roll back to this morning 0200 when our backup was made.

    A short thought: Last time I tested it was in January... so what changed?
    • Plugins + Confluence have been updated several times... 
    • I've tons of backups since than (each day + whenever I updated Confluence)
  • Restore of the whole backup seemed to be the fastest variant... since I did this successfully months ago, and since I didn't want to spend the rest of the day playing the responsible admin and hence do everything in a copy of the system...

    I gave it a go... and found 3.5min later that nearly everything was restored. Except for Karma points and some additional user information coming from diverse plugins....

    Well, since I am nearly the only one really working on this startup, I was the only one who is still a bit crying after his 6550 Karma points...
  • Indexing the whole instance once manually and everything else seemed working.

    First conclusion: Be a responsible Admin with Atlassian products, whenever you update only attachments, check if you still can restore a backup... and complain with the AddIn manufacturer and Atlassian if not.

    Notice to myself: Find someone who loves this work... don't do it yourself...
The journey could have ended here, but as people know me would say: It wouldn't be Ingo if he would have stoppedhere.

What does Atlassian think?

I don't know, I didn't get them on the phone and naturally, two hours later, I don't expect them to answer my support ticket - however, I'll update this part here. They have their chance, let's see if they take it.

Digging a bit deeper...

... what I found was even more disturbing. The following links pointing to the public accessible Jira of Atlassian.
Both have been created in August, 2006.... today is April, 23rd 2015... nearly nine years later.

Even several hundred people voted for and watched the issues - and I don't want to guess how many suffered - since then and nothing except the one or other 'we are working on this' happened.

Light at the end of the tunnel - a happy ending of the journey?

At least Atlassians community is tremendous - and to be fair, the support team of this company is as well... and not only with Enterprise customers from my point of experience.

After commenting on the "Put Removed Attachments Into The Trash" issue, a user recommended "Attachment Recycler for Confluence". Thanks again Andy Brook.

I tried it and it is at least 'easily' allowing to restore deleted attachments - and it seems to work for its versions as well. However, the 'timeline' is broken but that's better than going through the valley of pain Atlassian has in mind for its users.

It is however patchwork - but if you once went through this misery as I did - you know how good it is to have a patch or two with you from now on.

I don't know if it is working if you install it after the child was spilled with the bath, but it works if installed and you come into trouble now.

The costs for the AddIn are reasonable again, the $10 starter exists as well and - if calculated right - all other steps are cheaper and ROI comes with first incident. This includes the 'training' of the users as well - since they can self handle this tool.

Conclusio

Not a happy ending... but at least I now know (again (headbang)):
  • backup without trying a restore from time to time is a bad idea
  • there is since Confluence 5.6 a patch existing for Attachment deletion related problems (let's call it a trashcan or recycling bin)
  • Atlassian is - as many companies getting bigger and bigger - very good in keeping their users demands in mind and obvious ignore them for long time.
But to be fair, and after I gained some insider confirmation on guesses I had, during the writing of this blog entry here, the real problem with Backup & Restore and File Versioning and ... in Atlassian products (not only Confluence btw) is that it was never thought of when they started. The legacy and architecture is not only here, but at many points, depressing solid and hence only a complete rework in many fields would make this issues really be solved.

So a cure for this pressing issue, or at least an improvement as I asked for in Modernize Confluence Backup & Restore, is not in sight for another x years. 

Now, everybody has to make up his mind if this hinders him to buy Confluence (or Atlassian products in common). 

My decision is staying with them because for me the pro & cons are still on the pro side... but the weight is strongly going into below the 65:35 it is right now. If there weren't the support which is really good in comparison to other software manufacturers, it would be only 50:50 most times I am asked... 

THIS entry is NOT sponsored or paid for. It is just that I was so pissed that there was literally nothing that could have helped me except for the pre-modern solution of Atlassian themself, that I hope that this blog entry may help others either in the same or similar solution.

And since my startup - if financed - is going to do something different, I won't have the time to develop an AddIn that would solve the undiscussable issue described here. However, I hope that this entry may inspire someone to work on this - I am happy to help out with technical, architecture etc. advice for this. Do not hesitate to look me up in LinkedIn and contact me.