From companies that I worked for as a consultant. They always talk of the pain of letting people into internal systems and the problems that goes with it.
What it does
Sharing issue data in JIRA to external partners can be hard. Several problems arise. LDAP/Firewall/VPN/Signon/Permissions etc. needs to be set up by the IT-department. This plugin avoids that, by leveraging a custom web service between JIRA and the end user (e.g. partner or stakeholder).
Essentially, the plugin makes the following possible:
- A JIRA User opens e.g. a sprint view, backlog or kanban view. (A use case could be a Scrum project owner that wants to show sprint data to a customer.)
- He clicks the Secure Shares button (top right menu) og clicks "share sprint". Using a wizard he can choose which field data to share, and set an expiry time. He can also give a name and description (which will be shown to the end user). Finally a link is created on the form https://ssfj.io/jiraname/1f89ah2#secretkey.
- The JIRA User emails the link to the end user. Or ideally, he transmit it over a secure connection. 4.The end user opens the link in a browser. The issues shared are now presented in a table. The user can click on a issue key to get more details.
There are several advantages using this solution.
- The IT department can now focus on other stuff than using time on opening up for external user. This also goes for the JIRA administrator, which avoids screwing up permission schemes and such.
- The end user does not need to log into a VPN connection or JIRA. He simply opens a link.
How I built it
There are two modules in the project: A JIRA plugin and a webservice leveraging data between JIRA and a end user. The JIRA plugin was made using Java + React+redux (Webpack hot reload) on the client side. The web service was implemented using Node.js and React+redux as well, deployed on Heroku and using Cloudflare for DDOS protection.
The web service and JIRA communicates with https requests (for JIRA to web service data), and has a "Server Sent Events" channel (for web service to JIRA data). The browsers opens up a Websocket to the web service, and the communication goes through that.
Challenges I ran into
The deployment part was hard. Heroku+Cloudflare did not just accept how I wanted it to work, so minor stuff was changed to circumvent that.
Accomplishments that I'm proud of
Getting it to work in 3 weeks. Now, vacation :-)
What I learned
I re-learned (yet, again) that a small idea is not trivial to implement. Besides from that I gained more knowledge in developing protocols, and using them, which is nice :-)
What's next for Secure Shares for JIRA
The current plan says comments, feedback options, protocol adjustments and most importantly: improving the user experience.