This tutorial will teach you the basics of developing apps for Confluence Cloud using Atlassian Connect. The Atlassian Connect framework handles discovery, installation, authentication, and seamless integration into the Confluence user interface.
By the end of this tutorial, you'll have everything you need to start developing apps, including:
To complete this tutorial, you'll need a basic understanding of Confluence and the following:
We'll start by getting a free Confluence Cloud development site that you can use for building and testing apps.
Your cloud development site has Confluence and all of the Jira products installed, but be aware that Atlassian Cloud development sites have limits on the number of users.
Development mode allows you to install app descriptors from any public URL in your development site. This means that you do not need to list the app in the Atlassian Marketplace before installing it.
After the page refreshes, you'll see the Upload app link. This allows you to install apps while you're developing them.
Now, we're ready to create a basic app. The app is a macro that prints Hello World on Confluence pages.
Now we'll clone a repository that contains the source code for the Hello World app:
1
git clone https://bitbucket.org/atlassian/confluence-helloworld-addon.git
Now that we have the source code, we're ready to get to work:
1
cd confluence-helloworld-addon
1
npm install
1 2 3 4 5 6 7 8 9
{
"hosts" : {
"<your-confluence-domain>": {
"product" : "confluence",
"username" : "<user@example.com>",
"password" : "<api_token>"
}
}
}
Start the server:
1
npm start
You should see something similar to the following:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
> helloworld-app@0.0.1 start /Users/user/repos/confluence-helloworld-addon
> node app.js
Watching atlassian-connect.json for changes
Add-on server running at http://<your-local-machine>:<port>
Executing (default): CREATE TABLE IF NOT EXISTS `AddonSettings` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `clientKey` VARCHAR(255), `key` VARCHAR(255), `val` JSON); {
plain: false,
raw: true,
logging: [Function],
timestamps: false,
validate: {},
freezeTableName: false,
underscored: false,
paranoid: false,
rejectOnEmpty: false,
whereCollection: null,
schema: null,
schemaDelimiter: '',
defaultScope: {},
scopes: {},
indexes: [
{
fields: [Array],
type: '',
parser: null,
name: 'addon_settings_client_key_key'
}
],
name: { plural: 'AddonSettings', singular: 'AddonSetting' },
...
}
GET /macro?xdm_e=https%3A%2F%2F<your-confluence-domain>&xdm_c=channel-confluence-helloworld-addon__helloworld-macro5506103820156894572&cp=%2Fwiki&xdm_ deprecated_addon_key_do_not_use=confluence-helloworld-addon&lic=none&cv=1.472.0&jwt=<token>
GET /css/81ea9e595fa00bf1f5f0cf9afe2a37e1-addon.css 200 3.242 ms - 277
GET /js/69447ddc6badcb86e100e45c08d3f8b2-addon.js 200 2.649 ms - 19
Starting the service causes the app to be installed in the Confluence instance described
in the credentials.json
file.
Now that the sample app is installed, let's see the macro in action:
Edit any page, and type /hello (or {hello):
Select Hello World Macro, and save the page. You should see the following content:
Now that you have set up your cloud development site, you're ready to get started building apps. Check out the other tutorials, or take a look at the REST API docs.