Inspiration

Our team at Midori has been developing apps for Atlassian products for more than 15 years.

The Jira Server version of our very first app, Better PDF Exporter, has been released for the public in 2009 (long before Atlassian Marketplace even existed!). Over the past 11 years, the app proved that it's more than just "yet another" PDF exporter.

Teams of all sizes and from all industries are using it to solve various use cases:

  • custom reporting
  • generating documents of various types
  • archiving Jira issues
  • and sharing Jira data securely with third-parties

Some teams use it to create documents for agile meetings, like sprint plannings, daily standups, or retros. Others are creating ready-to-use invoices or timesheets from Jira data with a click (also using third-party data like Tempo Timesheets). Tech-savvy customers are building archiving solutions with it (often with the help of a Solution Partner).

They do all these using PDF, the standard business document format.

👉 Check out the Template Gallery for PDF samples

Now also for Jira Cloud!

One of the most popular app features has been exporting Jira dashboards to PDF files. To date, Better PDF Exporter is the only solution for the Jira platform that allows exporting and sharing dashboards, reports, and agile boards with external people.

When we released the initial version of Better PDF Exporter for Jira Cloud, it was immediately made clear by the end-users that they want this feature also on the cloud. We understand that more and more Jira users are moving to the cloud, so we made this feature request the #1 priority in the product roadmap. It was a huge challenge due to the cloud being a "dramastically" different technology environment, but our team solved it.

We are super-proud to announce that the biggest new feature and improvement to Better PDF Exporter Cloud has been shipped today! You can export Jira Cloud dashboards to professional and customizable PDF documents now.

How we built it

The new feature required fairly small changes in the existing user interface, although we had to evaluate multiple variants of the user interaction. Ultimately, we implemented the one that is super-intuitive and that cannot be simplified further.

It was a lot more complicated in the back-end side. (Our app is running on AWS, the cloud platform developed by Amazon.)

Being in the cloud, scalability has been key. Therefore, we implemented a special AWS API Gateway resource that triggers a sequence of AWS Lambda functions. They provide scalability by parallelization and by building up the final PDF document from smaller fragments (think Lego bricks!).

Due to the cloud, security has been key, as well. As we store confidential information, we rely on the cryptography features provided by AWS, then store the encrypted data in a DynamoDB database operated by the AWS team.

Challenges we ran into

Initially, we had to realize that the support for the dashboard entity is extremely limited both in the Jira Cloud REST API and in Atlassian Connect. These are the two pillars you build Jira Cloud apps on top of. They were clearly insufficient for the use case we wanted to solve.

The other aspect of the problem is that you can't solve it purely on the server-side, the gadgets being AJAXy and Javascript-heavy, and you can't solve it purely in the client-side (browser), either, due to the massive use of iframe's and due to various XSS problems.

At a point, it really felt like "mission impossible".

To overcome various limitations, we tried every sort of creative solutions both in the browser and in the server-side, validated by continuous experiments.

Accomplishments that we're proud of

We managed to solve the problem in a way that supports every gadget types! We provide so-called "full support" for the most frequently used gadgets and a fall back option of screenshot-based exports for the less frequently used ones. (Our approach makes it possible to give "full support" for any gadget any time in the future.)

We worked a lot on hiding the technical complexity from the end-user: the feature is simple to use and it just works. As they say, solving simple problems in simple ways is great, solving complex problems in complex ways is excellent, but solving complex problems in simple ways is what makes a genius (sorry 🙂).

What we learned

We learned that Amazon AWS is a great platform to build world-scale systems and that it is a good choice to build Atlassian apps, as well. Since launching the first version of the Better PDF Exporter app, it operated with 99.999999% uptime. We are confident that it will not degrade after introducing this new feature, either.

We also learned that creativity and brain-storming help to solve problems that look impossible for the first sight, and that it is always worth to run the extra miles for the ultimate user experience.

What's next for Jira Cloud dashboard export

In the short run, we will introduce a new "quota" concept which will allow running an export for a longer duration in case of massive data, still protecting the system resources. (After dashboards, it is the #2 most requested change.)

In the midterm, the app will:

In the long run, we will introduce support for new export file formats (e.g. Excel).

As always, we are keen to learn what the user community would need!

Thanks for reading!

Built With

Share this project:

Updates