SlideShare a Scribd company logo
#atlassian
Connect Integration Patterns 
A Case Study 
PATRICK STREULE • CONNECT ARCHITECT • ATLASSIAN • @PSTREULE
Connect Refresher
CONNECT REFRESHER 
Atlassian Plug-ins 
Add-On 
• In Process 
• Resources are shared 
• Access to all data 
• Tied to the stack 
• Language 
• Frameworks 
Add-On
CONNECT REFRESHER 
Connect Add-Ons 
Add-On 
• Separate Process 
• Scales independently 
• Data access only through 
REST API 
• Choose your own stack 
• Language 
• Frameworks 
Add-On 
Connect HTTPS
CONNECT REFRESHER 
Simple Descriptor 
{ 
"key": "my-add-on", 
"name": "Ping Pong", 
"description": "My very first add-on", 
"baseUrl": "{{localBaseUrl}}", 
"authentication": { 
"type": "jwt" 
}, 
"lifecycle": { 
"installed": "/installed" 
}, 
"modules": { 
"generalPages": [{ 
"key": "hello-world-page-jira", 
"location": "system.top.navigation.bar", 
"name": { 
"value": "Hello World" 
}, 
"url": "/hello-world" 
}] 
} 
}
CONNECT REFRESHER 
Simple Descriptor 
{ 
"key": "my-add-on", 
"name": "Ping Pong", 
"description": "My very first add-on", 
"baseUrl": "{{localBaseUrl}}", 
"authentication": { 
"type": "jwt" 
}, 
"lifecycle": { 
"installed": "/installed" 
}, 
"modules": { 
"generalPages": [{ 
"key": "hello-world-page-jira", 
"location": "system.top.navigation.bar", 
"name": { 
"value": "Hello World" 
}, 
"url": "/hello-world" 
}] 
} 
} 
Add-on service 
location
CONNECT REFRESHER 
Simple Descriptor 
{ 
"key": "my-add-on", 
"name": "Ping Pong", 
"description": "My very first add-on", 
"baseUrl": "{{localBaseUrl}}", 
"authentication": { 
"type": "jwt" 
}, 
"lifecycle": { 
"installed": "/installed" 
}, 
"modules": { 
"generalPages": [{ 
"key": "hello-world-page-jira", 
"location": "system.top.navigation.bar", 
"name": { 
"value": "Hello World" 
}, 
"url": "/hello-world" 
}] 
} 
} 
How to auth 
calls 
Add-on service 
location
CONNECT REFRESHER 
Simple Descriptor 
{ 
"key": "my-add-on", 
"name": "Ping Pong", 
"description": "My very first add-on", 
"baseUrl": "{{localBaseUrl}}", 
"authentication": { 
"type": "jwt" 
}, 
"lifecycle": { 
"installed": "/installed" 
}, 
"modules": { 
"generalPages": [{ 
"key": "hello-world-page-jira", 
"location": "system.top.navigation.bar", 
"name": { 
"value": "Hello World" 
}, 
"url": "/hello-world" 
}] 
} 
} 
How to auth 
calls 
Lifecycle 
notification 
endpoints 
Add-on service 
location
CONNECT REFRESHER 
Simple Descriptor 
{ 
"key": "my-add-on", 
"name": "Ping Pong", 
"description": "My very first add-on", 
"baseUrl": "{{localBaseUrl}}", 
"authentication": { 
"type": "jwt" 
}, 
"lifecycle": { 
"installed": "/installed" 
}, 
"modules": { 
"generalPages": [{ 
"key": "hello-world-page-jira", 
"location": "system.top.navigation.bar", 
"name": { 
"value": "Hello World" 
}, 
"url": "/hello-world" 
}] 
} 
} 
Where is the 
add-on 
showing up? 
How to auth 
calls 
Lifecycle 
notification 
endpoints 
Add-on service 
location
CONNECT REFRESHER 
Simple Descriptor 
{ 
"key": "my-add-on", 
"name": "Ping Pong", 
"description": "My very first add-on", 
"baseUrl": "{{localBaseUrl}}", 
"authentication": { 
"type": "jwt" 
}, 
"lifecycle": { 
"installed": "/installed" 
}, 
"modules": { 
"generalPages": [{ 
"key": "hello-world-page-jira", 
"location": "system.top.navigation.bar", 
"name": { 
"value": "Hello World" 
}, 
"url": "/hello-world" 
}] 
} 
} 
Where is the 
add-on 
showing up? 
iFrame URL 
How to auth 
calls 
Lifecycle 
notification 
endpoints 
Add-on service 
location
CONNECT REFRESHER 
Product WEBHOOKS 
REST API 
REST API 
HTTP 
Add-On
From Add-Ons to 
Integrations
Add-Ons 
Connect Add-On
Integration Add-Ons 
Add-On 
Connect 
Application
Integration Add-Ons 
Add-On 
Connect 
Application 
Add-On 
Application
Authentication
Authentication 
Add-On 
Connect 
Application 
JWT
Authentication 
Add-On 
Connect 
Application 
JWT
Authentication: Service Account 
Add-On Application 
JWT API Key 
Auth Token 
Basic Auth
Example: Bitbucket Notifications in HipChat
Example: Bitbucket Notifications in HipChat
Example: Bitbucket Notifications in HipChat
Example: Bitbucket Notifications in HipChat
Example: Bitbucket Notifications in HipChat
Example: Bitbucket Notifications in HipChat
Installed in Bitbucket and HipChat 
Add-On 
bb-addon.json 
hc-addon.json
Installed in Bitbucket and HipChat 
Add-On 
bb-addon.json 
hc-addon.json 
"installable": { 
"callbackUrl": "/installed" 
}
Installed in Bitbucket and HipChat 
Add-On 
bb-addon.json 
hc-addon.json 
1 
"installable": { 
"callbackUrl": "/installed" 
} 
1 
2 
/installed 2
Installed in Bitbucket and HipChat 
Add-On 
bb-addon.json 
hc-addon.json 
"configurePage": { 
"url": "/config" 
} 
1 
"installable": { 
"callbackUrl": "/installed" 
} 
1 
2 
/installed 2
Installed in Bitbucket and HipChat 
Add-On 
bb-addon.json 
hc-addon.json 
"configurePage": { 
"url": "/config" 
} 
"installable": { 
"callbackUrl": "/installed" 
} 
/config 
1 
1 
2 
/installed 2
Installed in Bitbucket and HipChat 
Add-On 
bb-addon.json 
hc-addon.json 
"configurePage": { 
"url": "/config" 
} 
"installable": { 
"callbackUrl": "/installed" 
} 
/config 
1 
1 
2 
/installed 2
Authentication: Multiple Service Accounts 
Add-On 
1 
2 
1 
2 
bb-addon.json 
hc-addon.json
Authentication: Multiple Service Accounts 
Add-On 
1 
2 
1 
2 
bb-addon.json 
hc-addon.json 
"webhooks": [ 
{ 
"event": "*", 
"url": "/events" 
} 
]
Authentication: Multiple Service Accounts 
Add-On 
1 
2 
1 
2 
bb-addon.json 
hc-addon.json 
"webhooks": [ 
{ 
"event": "*", 
"url": "/events" 
} 
]
Authentication: Multiple Service Accounts 
Add-On 
1 
2 
1 
2 
bb-addon.json 
hc-addon.json 
"webhooks": [ 
{ 
"event": "*", 
"url": "/events" 
} 
] 
/events
Authentication: Multiple Service Accounts 
Add-On 
1 
2 
1 
2 
bb-addon.json 
hc-addon.json 
"webhooks": [ 
{ 
/events 
JWT 
"event": "*", 
"url": "/events" 
} 
]
Authentication: Multiple Service Accounts 
Add-On 
1 
2 
1 
2 
bb-addon.json 
hc-addon.json 
"webhooks": [ 
{ 
/events 
JWT 
"event": "*", 
"url": "/events" 
} 
]
Authentication: Multiple Service Accounts 
Add-On 
1 
2 
1 
2 
/events 
JWT Group 
bb-addon.json 
hc-addon.json 
"webhooks": [ 
{ 
"event": "*", 
"url": "/events" 
} 
]
Authentication: Multiple Service Accounts 
Add-On 
1 
2 
/events 
JWT Group Auth 
1 
2 
bb-addon.json 
hc-addon.json 
"webhooks": [ 
{ 
"event": "*", 
"url": "/events" 
} 
] 
Token 
2
Authentication: Mapped User Accounts (3LA) 
Add-On Application 
JWT 
AghJ87s 
l9JUYfsg 
?
Authentication: Mapped User Accounts (3LA) 
Add-On Application 
JWT 
AghJ87s 
l9JUYfsg 
?
Authentication: Mapped User Accounts (3LA) 
Add-On Application 
JWT 
AghJ87s 
l9JUYfsg 
?
Authentication: Mapped User Accounts (3LA) 
Add-On Application 
JWT NPcudk7 
AghJ87s 
l9JUYfsg
Authentication: Mapped User Accounts (3LA) 
Add-On Application 
JWT NPcudk7 
AghJ87s 
l9JUYfsg Auth Token 
NPcudk7
Get Started Today!
Get Started 
Dev Loop 
LOCAL 
• Learn: https://connect.atlassian.com 
• Create your JSON descriptor 
• Create your add-on service 
• Host and test locally 
STAGING 
• Create private Marketplace listing 
• Deploy add-on to a staging environment 
• Test add-on on a Cloud JIRA or Confluence instance 
PRODUCTION 
• Deploy add-on to a production environment
Private listing 
• Not visible for others 
• Version management 
• Tokens to control 
allowed installs
Thank you! 
PATRICK STREULE • CONNECT ARCHITECT • ATLASSIAN • @PSTREULE

More Related Content

PPTX
REST with Eve and Python
PDF
Node.js 與 google cloud storage
PPTX
DevOps and Chef
PDF
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK - Nicola Iarocci - Co...
PDF
HTML5 APIs - Where No Man Has Gone Before! - GothamJS
PDF
Everybody Loves AFNetworking ... and So Can you!
PPTX
Android and REST
PPTX
Bare-knuckle web development
REST with Eve and Python
Node.js 與 google cloud storage
DevOps and Chef
RESTFUL SERVICES MADE EASY: THE EVE REST API FRAMEWORK - Nicola Iarocci - Co...
HTML5 APIs - Where No Man Has Gone Before! - GothamJS
Everybody Loves AFNetworking ... and So Can you!
Android and REST
Bare-knuckle web development

What's hot (20)

PDF
HTTP For the Good or the Bad - FSEC Edition
KEY
Node worshop Realtime - Socket.io
PDF
Hacking the Mesh: Extending Istio with WebAssembly Modules | DevNation Tech Talk
PPT
Get Real: Adventures in realtime web apps
PPTX
Python Code Camp for Professionals 3/4
PDF
JavaScript & HTML5 - Brave New World
PDF
Unity Makes Strength
PPTX
Python Code Camp for Professionals 4/4
PPTX
Top 10 F5 iRules to migrate to a modern load balancing platform
PDF
Working with AFNetworking
PDF
Operacion Guinda 2
PDF
Javascript call ObjC
PPTX
REST in Peace
PDF
Eve - REST API for Humans™
PDF
Apache CouchDB talk at Ontario GNU Linux Fest
PPTX
Drupal 8 Deep Dive: What It Means for Developers Now that REST Is in Core
PDF
Android webservices
PPTX
Dropwizard Restful 微服務 (microservice) 初探 - JCConf TW 2014
PDF
JavaScript APIs - The Web is the Platform - .toster conference, Moscow
PDF
PostgreSQL High-Availability and Geographic Locality using consul
HTTP For the Good or the Bad - FSEC Edition
Node worshop Realtime - Socket.io
Hacking the Mesh: Extending Istio with WebAssembly Modules | DevNation Tech Talk
Get Real: Adventures in realtime web apps
Python Code Camp for Professionals 3/4
JavaScript & HTML5 - Brave New World
Unity Makes Strength
Python Code Camp for Professionals 4/4
Top 10 F5 iRules to migrate to a modern load balancing platform
Working with AFNetworking
Operacion Guinda 2
Javascript call ObjC
REST in Peace
Eve - REST API for Humans™
Apache CouchDB talk at Ontario GNU Linux Fest
Drupal 8 Deep Dive: What It Means for Developers Now that REST Is in Core
Android webservices
Dropwizard Restful 微服務 (microservice) 初探 - JCConf TW 2014
JavaScript APIs - The Web is the Platform - .toster conference, Moscow
PostgreSQL High-Availability and Geographic Locality using consul
Ad

Similar to Connect Intergration Patterns: A Case Study - Patrick Streule (20)

PPTX
Deep Dive: Building external auth plugins for Gloo Enterprise
PDF
Mastering Spring Boot's Actuator with Madhura Bhave
PDF
The Big Picture and How to Get Started
PDF
Chatting with HIpChat: APIs 101
PDF
how to use openstack api
PDF
LF_APIStrat17_REST API Microversions
PDF
OSCamp #4 on Foreman | CLI tools with Foreman by Martin Bačovský
PPTX
Connecting the Dots: Kong for GraphQL Endpoints
PDF
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
PDF
Spring Boot Actuator
PDF
iMasters Intercon 2016 - Identity within Microservices
PDF
InterCon 2016 - Segurança de identidade digital levando em consideração uma a...
PDF
FIWARE Training: IoT and Legacy
PPTX
Python Code Camp for Professionals 1/4
PDF
Teaming up WordPress API with Backbone.js in Titanium
PDF
Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...
PPTX
Serverless and Servicefull Applications - Where Microservices complements Ser...
PDF
Nk API - examples
PDF
[Test bash manchester] contract testing in practice
PPTX
Grails plugin
Deep Dive: Building external auth plugins for Gloo Enterprise
Mastering Spring Boot's Actuator with Madhura Bhave
The Big Picture and How to Get Started
Chatting with HIpChat: APIs 101
how to use openstack api
LF_APIStrat17_REST API Microversions
OSCamp #4 on Foreman | CLI tools with Foreman by Martin Bačovský
Connecting the Dots: Kong for GraphQL Endpoints
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
Spring Boot Actuator
iMasters Intercon 2016 - Identity within Microservices
InterCon 2016 - Segurança de identidade digital levando em consideração uma a...
FIWARE Training: IoT and Legacy
Python Code Camp for Professionals 1/4
Teaming up WordPress API with Backbone.js in Titanium
Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...
Serverless and Servicefull Applications - Where Microservices complements Ser...
Nk API - examples
[Test bash manchester] contract testing in practice
Grails plugin
Ad

More from Atlassian (20)

PPTX
International Women's Day 2020
PDF
10 emerging trends that will unbreak your workplace in 2020
PDF
Forge App Showcase
PDF
Let's Build an Editor Macro with Forge UI
PDF
Meet the Forge Runtime
PDF
Forge UI: A New Way to Customize the Atlassian User Experience
PDF
Take Action with Forge Triggers
PDF
Observability and Troubleshooting in Forge
PDF
Trusted by Default: The Forge Security & Privacy Model
PDF
Designing Forge UI: A Story of Designing an App UI System
PDF
Forge: Under the Hood
PDF
Access to User Activities - Activity Platform APIs
PDF
Design Your Next App with the Atlassian Vendor Sketch Plugin
PDF
Tear Up Your Roadmap and Get Out of the Building
PDF
Nailing Measurement: a Framework for Measuring Metrics that Matter
PDF
Building Apps With Color Blind Users in Mind
PDF
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
PDF
Beyond Diversity: A Guide to Building Balanced Teams
PDF
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
PDF
Building Apps With Enterprise in Mind
International Women's Day 2020
10 emerging trends that will unbreak your workplace in 2020
Forge App Showcase
Let's Build an Editor Macro with Forge UI
Meet the Forge Runtime
Forge UI: A New Way to Customize the Atlassian User Experience
Take Action with Forge Triggers
Observability and Troubleshooting in Forge
Trusted by Default: The Forge Security & Privacy Model
Designing Forge UI: A Story of Designing an App UI System
Forge: Under the Hood
Access to User Activities - Activity Platform APIs
Design Your Next App with the Atlassian Vendor Sketch Plugin
Tear Up Your Roadmap and Get Out of the Building
Nailing Measurement: a Framework for Measuring Metrics that Matter
Building Apps With Color Blind Users in Mind
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Beyond Diversity: A Guide to Building Balanced Teams
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
Building Apps With Enterprise in Mind

Recently uploaded (20)

PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Essential Infomation Tech presentation.pptx
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
ai tools demonstartion for schools and inter college
Softaken Excel to vCard Converter Software.pdf
CHAPTER 2 - PM Management and IT Context
Operating system designcfffgfgggggggvggggggggg
Reimagine Home Health with the Power of Agentic AI​
Understanding Forklifts - TECH EHS Solution
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PTS Company Brochure 2025 (1).pdf.......
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
2025 Textile ERP Trends: SAP, Odoo & Oracle
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Design an Analysis of Algorithms II-SECS-1021-03
Essential Infomation Tech presentation.pptx
VVF-Customer-Presentation2025-Ver1.9.pptx
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
wealthsignaloriginal-com-DS-text-... (1).pdf
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Navsoft: AI-Powered Business Solutions & Custom Software Development
ai tools demonstartion for schools and inter college

Connect Intergration Patterns: A Case Study - Patrick Streule

  • 2. Connect Integration Patterns A Case Study PATRICK STREULE • CONNECT ARCHITECT • ATLASSIAN • @PSTREULE
  • 4. CONNECT REFRESHER Atlassian Plug-ins Add-On • In Process • Resources are shared • Access to all data • Tied to the stack • Language • Frameworks Add-On
  • 5. CONNECT REFRESHER Connect Add-Ons Add-On • Separate Process • Scales independently • Data access only through REST API • Choose your own stack • Language • Frameworks Add-On Connect HTTPS
  • 6. CONNECT REFRESHER Simple Descriptor { "key": "my-add-on", "name": "Ping Pong", "description": "My very first add-on", "baseUrl": "{{localBaseUrl}}", "authentication": { "type": "jwt" }, "lifecycle": { "installed": "/installed" }, "modules": { "generalPages": [{ "key": "hello-world-page-jira", "location": "system.top.navigation.bar", "name": { "value": "Hello World" }, "url": "/hello-world" }] } }
  • 7. CONNECT REFRESHER Simple Descriptor { "key": "my-add-on", "name": "Ping Pong", "description": "My very first add-on", "baseUrl": "{{localBaseUrl}}", "authentication": { "type": "jwt" }, "lifecycle": { "installed": "/installed" }, "modules": { "generalPages": [{ "key": "hello-world-page-jira", "location": "system.top.navigation.bar", "name": { "value": "Hello World" }, "url": "/hello-world" }] } } Add-on service location
  • 8. CONNECT REFRESHER Simple Descriptor { "key": "my-add-on", "name": "Ping Pong", "description": "My very first add-on", "baseUrl": "{{localBaseUrl}}", "authentication": { "type": "jwt" }, "lifecycle": { "installed": "/installed" }, "modules": { "generalPages": [{ "key": "hello-world-page-jira", "location": "system.top.navigation.bar", "name": { "value": "Hello World" }, "url": "/hello-world" }] } } How to auth calls Add-on service location
  • 9. CONNECT REFRESHER Simple Descriptor { "key": "my-add-on", "name": "Ping Pong", "description": "My very first add-on", "baseUrl": "{{localBaseUrl}}", "authentication": { "type": "jwt" }, "lifecycle": { "installed": "/installed" }, "modules": { "generalPages": [{ "key": "hello-world-page-jira", "location": "system.top.navigation.bar", "name": { "value": "Hello World" }, "url": "/hello-world" }] } } How to auth calls Lifecycle notification endpoints Add-on service location
  • 10. CONNECT REFRESHER Simple Descriptor { "key": "my-add-on", "name": "Ping Pong", "description": "My very first add-on", "baseUrl": "{{localBaseUrl}}", "authentication": { "type": "jwt" }, "lifecycle": { "installed": "/installed" }, "modules": { "generalPages": [{ "key": "hello-world-page-jira", "location": "system.top.navigation.bar", "name": { "value": "Hello World" }, "url": "/hello-world" }] } } Where is the add-on showing up? How to auth calls Lifecycle notification endpoints Add-on service location
  • 11. CONNECT REFRESHER Simple Descriptor { "key": "my-add-on", "name": "Ping Pong", "description": "My very first add-on", "baseUrl": "{{localBaseUrl}}", "authentication": { "type": "jwt" }, "lifecycle": { "installed": "/installed" }, "modules": { "generalPages": [{ "key": "hello-world-page-jira", "location": "system.top.navigation.bar", "name": { "value": "Hello World" }, "url": "/hello-world" }] } } Where is the add-on showing up? iFrame URL How to auth calls Lifecycle notification endpoints Add-on service location
  • 12. CONNECT REFRESHER Product WEBHOOKS REST API REST API HTTP Add-On
  • 13. From Add-Ons to Integrations
  • 15. Integration Add-Ons Add-On Connect Application
  • 16. Integration Add-Ons Add-On Connect Application Add-On Application
  • 18. Authentication Add-On Connect Application JWT
  • 19. Authentication Add-On Connect Application JWT
  • 20. Authentication: Service Account Add-On Application JWT API Key Auth Token Basic Auth
  • 27. Installed in Bitbucket and HipChat Add-On bb-addon.json hc-addon.json
  • 28. Installed in Bitbucket and HipChat Add-On bb-addon.json hc-addon.json "installable": { "callbackUrl": "/installed" }
  • 29. Installed in Bitbucket and HipChat Add-On bb-addon.json hc-addon.json 1 "installable": { "callbackUrl": "/installed" } 1 2 /installed 2
  • 30. Installed in Bitbucket and HipChat Add-On bb-addon.json hc-addon.json "configurePage": { "url": "/config" } 1 "installable": { "callbackUrl": "/installed" } 1 2 /installed 2
  • 31. Installed in Bitbucket and HipChat Add-On bb-addon.json hc-addon.json "configurePage": { "url": "/config" } "installable": { "callbackUrl": "/installed" } /config 1 1 2 /installed 2
  • 32. Installed in Bitbucket and HipChat Add-On bb-addon.json hc-addon.json "configurePage": { "url": "/config" } "installable": { "callbackUrl": "/installed" } /config 1 1 2 /installed 2
  • 33. Authentication: Multiple Service Accounts Add-On 1 2 1 2 bb-addon.json hc-addon.json
  • 34. Authentication: Multiple Service Accounts Add-On 1 2 1 2 bb-addon.json hc-addon.json "webhooks": [ { "event": "*", "url": "/events" } ]
  • 35. Authentication: Multiple Service Accounts Add-On 1 2 1 2 bb-addon.json hc-addon.json "webhooks": [ { "event": "*", "url": "/events" } ]
  • 36. Authentication: Multiple Service Accounts Add-On 1 2 1 2 bb-addon.json hc-addon.json "webhooks": [ { "event": "*", "url": "/events" } ] /events
  • 37. Authentication: Multiple Service Accounts Add-On 1 2 1 2 bb-addon.json hc-addon.json "webhooks": [ { /events JWT "event": "*", "url": "/events" } ]
  • 38. Authentication: Multiple Service Accounts Add-On 1 2 1 2 bb-addon.json hc-addon.json "webhooks": [ { /events JWT "event": "*", "url": "/events" } ]
  • 39. Authentication: Multiple Service Accounts Add-On 1 2 1 2 /events JWT Group bb-addon.json hc-addon.json "webhooks": [ { "event": "*", "url": "/events" } ]
  • 40. Authentication: Multiple Service Accounts Add-On 1 2 /events JWT Group Auth 1 2 bb-addon.json hc-addon.json "webhooks": [ { "event": "*", "url": "/events" } ] Token 2
  • 41. Authentication: Mapped User Accounts (3LA) Add-On Application JWT AghJ87s l9JUYfsg ?
  • 42. Authentication: Mapped User Accounts (3LA) Add-On Application JWT AghJ87s l9JUYfsg ?
  • 43. Authentication: Mapped User Accounts (3LA) Add-On Application JWT AghJ87s l9JUYfsg ?
  • 44. Authentication: Mapped User Accounts (3LA) Add-On Application JWT NPcudk7 AghJ87s l9JUYfsg
  • 45. Authentication: Mapped User Accounts (3LA) Add-On Application JWT NPcudk7 AghJ87s l9JUYfsg Auth Token NPcudk7
  • 47. Get Started Dev Loop LOCAL • Learn: https://connect.atlassian.com • Create your JSON descriptor • Create your add-on service • Host and test locally STAGING • Create private Marketplace listing • Deploy add-on to a staging environment • Test add-on on a Cloud JIRA or Confluence instance PRODUCTION • Deploy add-on to a production environment
  • 48. Private listing • Not visible for others • Version management • Tokens to control allowed installs
  • 49. Thank you! PATRICK STREULE • CONNECT ARCHITECT • ATLASSIAN • @PSTREULE