We already have this product for Confluence Server. For Codegeist we've made a Cloud version, and it was a challenge.

What it does

It's a database, but it's a spreadsheet. You can use formulas, have wysiwyg formatting, but you can also query it using SQL. Users can embed spreadsheets or excerpts of data inside their Confluence documents. We haven't had time to automate the credentials before the deadline, but it is possible for customers to use the SQL API to update their data. The upside of having the same version for Cloud and download is that when customers migrate from Cloud to their own Confluence Server, they can just transfer the data for this plugin.

How we built it

One constraint we had was to share the code with between the Cloud and the download versions of the product. So we also had to choose compatible technologies.

We've used because it supports Jersey REST resources, so we could share a lot of Java code. Jeremy has implemented most of the DropWizard stack: He implemented the JWT authentication for the Atlassian Connect API in DropWizard, the logs, the database (because cloud instances are multitenant), support for Soy Templates (aka Google Closure Templates, which Atlassian uses for Server products). We've also reused Atlassian's AUI framework.

Challenges we ran into

That's the cool part. We've already published "Play SQL Spreadsheets" for Confluence Server. So we had to extract all REST resources, javascript files and Java actions from the Confluence plugin into a shared "playsql-core.jar" module. All the code that Jeremy implemented in DropWizard was a "glue" designed to adapt this playsql-code.jar to the Cloud runtime.

Accomplishments that I'm proud of

Reusing the same "core" code for the Cloud and the Confluence Server versions of the add-on!

What I learned

DropWizard is really good, and it was fun to integrate it to the Atlassian Connect API.

What's next for Play SQL Spreadsheets for Confluence Cloud

We're in the hardening period for the add-on. We'll soon add SQL queries, so you can query the spreadsheets, make joints, pivot tables, etc. We'll also make it possible for customer to access their data with the SQL API and export it to Excel files. All of this will be easy because those features already exist in Confluence Server.

Built With

Share this project: