Introducing the Unofficial Atlassian Data Center Plugin Development CLI

After having spent a lot of time creating all sorts of custom Docker files with bash scripts and illusive docker compose configurations, we finally found the time to string them all together and wrap them into the Unofficial Atlassian Data Center Plugin Development CLI :tada:

Speed up your local Data Center development flow

Simply install the CLI globally using npm install -g dcdx and quickly run your favourite Atlassian application:

$ dcdx run:jira

This will spin up a Jira instance with a 72H development license pre-installed and a PostgreSQL database. If you want to use a different database, for instance MySQL , just run dcdx run jira -d mysql. The Docker files are build from source, meaning that they will also work natively on Apple Silicon.

The following Atlassian Data Center products are supported:

  • Jira
  • Confluence
  • Bamboo
  • Bitbucket

It includes local versions of one of the following supported databases:

  • PostgreSQL (default)
  • MySQL
  • Microsoft SQL Server

How does this compare to the Atlassian SDK?

Glad you asked! I want to be absolutely clear that this is in no way endorsed by Atlassian, nor is it meant to replace the Atlassian SDK or AMPS. You can still use the official methods for developming Data Center apps.

However, we’ve found that for us the official SDK is not sufficient. It has not received many updates and has become sluggish. In addition, the default embedded H2 database is marked deprecated and support will be dropped in future versions of Atlassian products. Many host products also do not run well on Apple Silicon when started using the Atlassian SDK.

In short: the purpose of the DCDX CLI is not to replace the Atlassian SDK, but provide convenience methods for app developers in the hope that it will speed up their development flow.

More info
You can find more info on the CLI on NPM:

The project is open source and contributions are welcome!
Source can be found in Github:

40 Likes

For those brave enough to try: the next version of the DCDX command has support for starting an application from within the context of your Atlassian Plugin project. If you run npm install -g dcdx@next it will be installed globally.

To start the project, run dcdx start and it will:

  • automatically detect host application
  • automatically detect host application version
  • start a filesystem watcher to detect source file changes and run mvn package
  • start a filesystem watcher to detect newly created JAR files and upload them for installation by QuickReload

For those with excotic Maven configurations: it has support for maven profiles: dcdx start -P <profile>. In addition, it will forward all “unknown” arguments to the maven package process:

dcdx start -Dmypropertyoverride=someValue 
-> mvn package -Dmypropertyoverride=someValue

I’m going to use the next version for my own projects for the coming days to make sure it is stable before promoting it to a major version

4 Likes

There are some additional improvements available on the dcdx@next prerelease channel:

A new dcdx build command
This allows you to run AMPS without also starting an instance. The use case is that you can start the product instance independently from the build process. Once the build is complete, DCDX will look for a running product instance to copy the output artifact (for QuickReload)

Versions are automatically retrieved from Docker
The product versions are now generated based on the Docker tag list. This will ensure that you enter the right version number when starting a product, as it can only launch instances based on the official supported Docker tags.

A new dcdx stop command
This will allow you to stop the instance manually, in case the SIGINT was not processed correctly

Latest version of QuickReload
To support the ongoing Platform 7 developments, dcdx now ships with the latest version of QuickReload

4 Likes