This article was featured in the Atlassian Community blog.
What do you do if you are a large organisation with thousands of active Jira users filing a million issues per year and you need to comply with the strictest data privacy regulation so far? You get yourself an Atlassian consultant to create a custom solution for you, of course. Here’s how we did it.
When I was tasked by a major government entity to create a Jira issue archiving system by integrating Jira with their custom system and respect strict regulation, I followed these three steps: understand, create, collaborate.
The client in this story is a large government organisation with around 32.000 people. They are using their own in-house developed document management system across the entire institution. This offers them basic capabilities for managing documents, like filing, preservation, search, management of access rights and workflow. It also functions as long-term storage of documents coming from all applications.
So in summary, documents are stored centrally regardless of how they are processed or which department they belong to. This, in turn, ensures secure access, avoids any duplication and facilitates the sharing of information.
At the same time, many teams also use Atlassian tools.
One of these teams, for example, is HR, where they use Jira Core as the back-end system to handle all questions coming from the staff (salary related questions, medical insurance inquiries, pensions or other benefits, etc.). The web form on their own website is the front-end and questions are channelled right into Jira via the REST API. Once the question is logged as a Jira ticket, it gets an assignee. The internal procedures are followed and ultimately the team member will receive the answer.
You can imagine that this kind of personal information is often of a sensitive nature. Also, there are more than a million Jira issues created yearly, so you can imagine that a lot of outdated issues pile up pretty fast, stuffed with sensitive personal information.
In order to keep the instance clean and comply with data privacy rules, it has been decided to delete all issues after one year. However, before deleting from the production system, they should be archived (without any private data such as employee details) into the document management system for statistical purposes.
Since our company has already been providing services for their Atlassian tools (such as installation, upgrades, configuration, and custom development), they asked if we could somehow integrate the two systems: Jira and the legacy document management system.
For this, we created a custom Jira app offering the following components:
- A configuration page where URL, credentials and other parameters can be provided, telling our Jira app how to connect to the API of the document management system
- A button on the Jira issue view that sends the PDF export of the currently viewed issue (including attachments) to the document management system.
The user is also redirected in order to be able to make some changes there, for example, change the title of the document (by default it’s the issue summary), maybe exclude some attachments, etc.
- A panel on the Jira issue view that shows the latest registration in the document management system: date, registration number with hyperlink and the user who did it
- A history tab showing all the registrations with dates, hyperlink, and author
- Built-in permission control, to verify if the current user actually has necessary access in both systems to do the action or even to view the registration history.
Initially, we started developing a solution that exported Word documents using the default Jira functionality. But it was difficult to add the company logo to them and technically the exported file was not actually a Word file, but an HTML file with .doc extension. This was a big problem since the document management system couldn’t validate the document.
We needed a solution to export the current Jira ticket under our own terms:
- Reordering the Jira fields into custom subsections
- Selectively interpreting HTML
- Adding a corporate header with logo and other information
- Making sure the file is in a correct, verifiable format
Instead of reinventing the wheel we decided to integrate Better PDF Exporter created by Midori into our app since it offered everything we listed above and also an API to access the exported PDF files we create.
It was a great journey which proves that complex environments and regulatory barriers can be easily overcome thanks to the flexibility of the Jira API and a successful collaboration with app developers.Alexandru Luchian Connstantinescu, Life in Codes CEO & Founder
Once we wired the PDF export functionality into our app, we added some controls to the user interface as well. On the configuration page, our users can now select the Better PDF Exporter template they want to use for issue archiving. Better PDF Exporter also allows the user to change or modify the template behind a PDF export type easily since it is not hard-coded in our app. It means that if users need to change the layout, design or branding on the PDF document or want to add a new template, they have direct access to the resources in Better PDF Exporter.
My advice to anyone looking to improve the efficiency of their team
Whether you are a big or a small team, Atlassian tools can be integrated with your existing software to adapt to all your needs and improve your workflow and efficiency.
Contact us for a free assessment.