SlideShare a Scribd company logo
1 of 79
Download to read offline
PATRICK STREULE | ARCHITECT | ATLASSIAN | @PSTREULE
Atlassian Document Format
…is coming to an API near you
Atlassian Editor
In Jira, Confluence,
Bitbucket, OpsGenie, …
Mentions
Mentions
Code
Mentions
Code
Apps
Mentions
Code
Apps
Actions

Decisions
WikiMarkup Markdown CXHTML
WikiMarkup Markdown CXHTML
*Example Code*
{noformat}
const todo = items
.filter(
item => !item.done
);
{noformat}
WikiMarkup Markdown CXHTML
*Example Code*
{noformat}
const todo = items
.filter(
item => !item.done
);
{noformat}
**Example Code**
```javascript
const todo = items
.filter(
item => !item.done
);
```
WikiMarkup Markdown CXHTML
*Example Code*
{noformat}
const todo = items
.filter(
item => !item.done
);
{noformat}
**Example Code**
```javascript
const todo = items
.filter(
item => !item.done
);
```
<p>
<strong>Example Code</strong>
</p>
<ac:structured-macro
ac:name="code"
ac:schema-version="1"
ac:macro-id="5f5ca260…">
<ac:parameter ac:name="language">
js
</ac:parameter>
<ac:plain-text-body>
<![CDATA[const todo = …]]>
</ac:plain-text-body>
</ac:structured-macro>
WikiMarkup Markdown CXHTML
WikiMarkup Markdown CXHTML
WikiMarkup Markdown CXHTML
WikiMarkup Markdown CXHTML
Consistency
Learn a single format 

for all product APIs
Extensibility
Support for any 

new Editor feature
Why a new Format?
AtlassianDocumentFormat(ADF)
AtlassianDocumentFormat(ADF)
{
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Example Code",
"marks": [{ "type": "strong" }]
}
]
},
{
"type": "codeBlock",
"attrs": {
"language": "JavaScript"
},
"content": [
{
"type": "text",
"text": "const todo = items.filter(item => …);"
}
]
}
]
}
AtlassianDocumentFormat(ADF)
{
"type": "doc",
"version": 1,
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Example Code",
"marks": [{ "type": "strong" }]
}
]
},
{
"type": "codeBlock",
"attrs": {
"language": "JavaScript"
},
"content": [
{
"type": "text",
"text": "const todo = items.filter(item => …);"
}
]
}
]
}
{
"type": "doc",
"version": 1,
"content": [
{
"type": "decisionList",
"attrs": {
"localId": "862034fa..."
},
"content": [
{
"type": "decisionItem",
"attrs": {
"state": "DECIDED",
"localId": "09f1eb1e..."
},
"content": [
{
"text": "We need a new format",
"type": "text"
}
]
}
]
}
]
}
Processable
Easy to construct and parse
by machines
Why JSON?
Maintainable
Schema for documentation,
validation and backward
compatibility checks
Familiar
Lingua franca, 

supported everywhere
Verbose
Even in comparison with
Confluence CXHTML (1.6x)
Not a standard
The JSON schema is
Atlassian-specific
But…
Document Structure
BlockNodes
Paragraphs,Codeblocks,Quotes,…
DOCUMENT STRUCTURE: TERMINOLOGY
BlockNodes
Paragraphs,Codeblocks,Quotes,…
DOCUMENT STRUCTURE: TERMINOLOGY
BlockNodes
Paragraphs,Codeblocks,Quotes,…
InlineNodes
Text,Mentions,….
DOCUMENT STRUCTURE: TERMINOLOGY
BlockNodes
Paragraphs,Codeblocks,Quotes,…
InlineNodes
Text,Mentions,….
Marks
Bold,Italic,Links…
DOCUMENT STRUCTURE: TERMINOLOGY
{
"type": "<type>",
"attrs": {},
"content": []
}
DOCUMENT STRUCTURE: BLOCK NODES
{
"type": "<type>",
"attrs": {},
"content": []
}
Type
Allnodesandmarks
DOCUMENT STRUCTURE: BLOCK NODES
{
"type": "<type>",
"attrs": {},
"content": []
}
Metadata
Anynodeormark
(optional)
Type
Allnodesandmarks
DOCUMENT STRUCTURE: BLOCK NODES
{
"type": "<type>",
"attrs": {},
"content": []
}
Metadata
Anynodeormark
(optional)
Type
Allnodesandmarks
Children
(optional)
DOCUMENT STRUCTURE: BLOCK NODES
{
"type": "<type>",
"attrs": {},
"text": "<text>",
"marks": [],
}
Metadata
Anynodeormark
(optional)
Type
Allnodesandmarks
DOCUMENT STRUCTURE: INLINE NODES
{
"type": "<type>",
"attrs": {},
"text": "<text>",
"marks": [],
}
Metadata
Anynodeormark
(optional)
Type
Allnodesandmarks
Text
DOCUMENT STRUCTURE: INLINE NODES
{
"type": "<type>",
"attrs": {},
"text": "<text>",
"marks": [],
}
Metadata
Anynodeormark
(optional)
Type
Allnodesandmarks
Text
Formatting
(optional)
DOCUMENT STRUCTURE: INLINE NODES
{
"type": "<type>",
"attrs": {}
}
Metadata
Anynodeormark
(optional)
Type
Allnodesandmarks
DOCUMENT STRUCTURE: MARKS
Document Structure
Examples
{
"version": 1,
"type": "doc",
"content": []
}
DOCUMENT STRUCTURE: EMPTY DOCUMENT
{
"version": 1,
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Some "
},
{
"type": "text",
"text": "formatted",
"marks": [
{
"type": "strong"
}
]
},
{
"type": "text",
"text": " content"
}
]
},
DOCUMENT STRUCTURE
{
"version": 1,
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Some "
},
{
"type": "text",
"text": "formatted",
"marks": [
{
"type": "strong"
}
]
},
{
"type": "text",
"text": " content"
}
]
},
DOCUMENT STRUCTURE
{
"version": 1,
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Some "
},
{
"type": "text",
"text": "formatted",
"marks": [
{
"type": "strong"
}
]
},
{
"type": "text",
"text": " content"
}
]
},
DOCUMENT STRUCTURE
{
"version": 1,
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Some "
},
{
"type": "text",
"text": "formatted",
"marks": [
{
"type": "strong"
}
]
},
{
"type": "text",
"text": " content"
}
]
},
DOCUMENT STRUCTURE
{
"version": 1,
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Some "
},
{
"type": "text",
"text": "formatted",
"marks": [
{
"type": "strong"
}
]
},
{
"type": "text",
"text": " content"
}
]
},
DOCUMENT STRUCTURE
{
"version": 1,
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Some "
},
{
"type": "text",
"text": "formatted",
"marks": [
{
"type": "strong"
}
]
},
{
"type": "text",
"text": " content"
}
]
},
DOCUMENT STRUCTURE
"type": "text",
"text": " content"
}
]
},
{
"type": "panel",
"attrs": {
"panelType": "info"
},
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "A panel"
}
]
}
]
},
{
"type": "paragraph",
"content": [
{
"type": "emoji",
DOCUMENT STRUCTURE
"type": "text",
"text": " content"
}
]
},
{
"type": "panel",
"attrs": {
"panelType": "info"
},
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "A panel"
}
]
}
]
},
{
"type": "paragraph",
"content": [
{
"type": "emoji",
DOCUMENT STRUCTURE
"type": "text",
"text": " content"
}
]
},
{
"type": "panel",
"attrs": {
"panelType": "info"
},
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "A panel"
}
]
}
]
},
{
"type": "paragraph",
"content": [
{
"type": "emoji",
DOCUMENT STRUCTURE
"type": "text",
"text": " content"
}
]
},
{
"type": "panel",
"attrs": {
"panelType": "info"
},
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "A panel"
}
]
}
]
},
{
"type": "paragraph",
"content": [
{
"type": "emoji",
DOCUMENT STRUCTURE
{
"type": "paragraph",
"content": [
{
"type": "emoji",
"attrs": {
"shortName": ":link:",
"id": "1f517",
"text": "🔗"
}
},
{
"type": "text",
"text": " "
},
{
"type": "text",
"text": "www.atlassian.com",
"marks": [
{
"type": "link",
"attrs": {
"href": "http://www.atla
}
}
]
DOCUMENT STRUCTURE
{
"type": "paragraph",
"content": [
{
"type": "emoji",
"attrs": {
"shortName": ":link:",
"id": "1f517",
"text": "🔗"
}
},
{
"type": "text",
"text": " "
},
{
"type": "text",
"text": "www.atlassian.com",
"marks": [
{
"type": "link",
"attrs": {
"href": "http://www.atla
}
}
]
DOCUMENT STRUCTURE
{
"type": "paragraph",
"content": [
{
"type": "emoji",
"attrs": {
"shortName": ":link:",
"id": "1f517",
"text": "🔗"
}
},
{
"type": "text",
"text": " "
},
{
"type": "text",
"text": "www.atlassian.com",
"marks": [
{
"type": "link",
"attrs": {
"href": "http://www.atla
}
}
]
DOCUMENT STRUCTURE
{
"type": "paragraph",
"content": [
{
"type": "emoji",
"attrs": {
"shortName": ":link:",
"id": "1f517",
"text": "🔗"
}
},
{
"type": "text",
"text": " "
},
{
"type": "text",
"text": "www.atlassian.com",
"marks": [
{
"type": "link",
"attrs": {
"href": "http://www.atla
}
}
]
DOCUMENT STRUCTURE
{
"type": "paragraph",
"content": [
{
"type": "emoji",
"attrs": {
"shortName": ":link:",
"id": "1f517",
"text": "🔗"
}
},
{
"type": "text",
"text": " "
},
{
"type": "text",
"text": "www.atlassian.com",
"marks": [
{
"type": "link",
"attrs": {
"href": "http://www.atla
}
}
]
DOCUMENT STRUCTURE
{
"type": "paragraph",
"content": [
{
"type": "emoji",
"attrs": {
"shortName": ":link:",
"id": "1f517",
"text": "🔗"
}
},
{
"type": "text",
"text": " "
},
{
"type": "text",
"text": "www.atlassian.com",
"marks": [
{
"type": "link",
"attrs": {
"href": "http://www.atla
}
}
]
DOCUMENT STRUCTURE
Creating Documents
@atlaskit/adf-utils
Maintainedby
theAtlassianEditorteam
LIBRARIES: ATLASKIT ADF-UTILS
const {
doc, p, text, emoji, strong, panel, link
} = require('@atlaskit/adf-utils/builders');
const document = doc(
LIBRARIES: ATLASKIT ADF-UTILS
const {
doc, p, text, emoji, strong, panel, link
} = require('@atlaskit/adf-utils/builders');
const document = doc(
p(
text('some '),
strong(text('formatted')),
text(' content')
),
const {
doc, p, text, emoji, strong, panel, link
} = require('@atlaskit/adf-utils/builders');
const document = doc(
p(
text('some '),
strong(text('formatted')),
text(' content')
),
panel({ panelType: 'info' })(
p(
text('A panel')
)
),
LIBRARIES: ATLASKIT ADF-UTILS
const {
doc, p, text, emoji, strong, panel, link
} = require('@atlaskit/adf-utils/builders');
const document = doc(
p(
text('some '),
strong(text('formatted')),
text(' content')
),
panel({ panelType: 'info' })(
p(
text('A panel')
)
),
p(
emoji({ shortName: ':link:' }),
text(' '),
link({ href: 'https://www.atlassian.com' })(
text('www.atlassian.com')
)
)
);
LIBRARIES: ATLASKIT ADF-UTILS
Processing Documents
EXTRACTING ALL MENTIONED USERS
EXTRACTING ALL MENTIONED USERS
}
]
},
{
"type": "tableCell",
"attrs": {
"colspan": 1,
"rowspan": 1
},
"content": [
{
"type": "paragraph",
"content": [
{
"type": "mention",
"attrs": {
"id": "557057:46e75034-9ece-11e8-acd5-420039310d01"
"text": "@user4"
}
},
{
"text": " ",
"type": "text"
}
]
}
]
}
]
}
]
},
{
"type": "paragraph",
"content": [
{
"type": "mention",
"attrs": {
"id": "557057:509d96ec-9ece-11e8-bdff-420039310d01",
"text": "@user5"
}
},
{
"text": " to add more tasks",
"type": "text"
}
]
}
],
"version": 1
}
}
]
},
{
"type": "tableCell",
"attrs": {
"colspan": 1,
"rowspan": 1
},
"content": [
{
"type": "paragraph",
"content": [
{
"type": "mention",
"attrs": {
"id": "557057:46e75034-9ece-11e8-acd5-420039310d01"
"text": "@user4"
}
},
{
"text": " ",
"type": "text"
}
]
}
]
}
]
}
]
},
{
"type": "paragraph",
"content": [
{
"type": "mention",
"attrs": {
"id": "557057:509d96ec-9ece-11e8-bdff-420039310d01",
"text": "@user5"
}
},
{
"text": " to add more tasks",
"type": "text"
}
]
}
],
"version": 1
}
EXTRACTING ALL MENTIONED USERS
FILTER $
const { filter } = require(
'@atlaskit/adf-utils/traverse'
);
const accountIds = filter(
document,
node => node.type === 'mention'
).map(
node => node.attrs.id
);
console.log(accountIds);
FILTER $ node src/filter.js
const { filter } = require(
'@atlaskit/adf-utils/traverse'
);
const accountIds = filter(
document,
node => node.type === 'mention'
).map(
node => node.attrs.id
);
console.log(accountIds);
FILTER $
[ '557057:09f20a2a-9ece-11e8-998a-420039310d01',
'557057:2eee6792-9ece-11e8-9c9a-420039310d01',
'557057:3c603a90-9ece-11e8-9536-420039310d01',
'557057:46e75034-9ece-11e8-acd5-420039310d01',
'557057:509d96ec-9ece-11e8-bdff-420039310d01' ]
node src/filter.js
const { filter } = require(
'@atlaskit/adf-utils/traverse'
);
const accountIds = filter(
document,
node => node.type === 'mention'
).map(
node => node.attrs.id
);
console.log(accountIds);
TRAVERSE
const { traverse } = require('@atlaskit/adf-utils/traverse');
const linkified = traverse(document, {
text: (node, parent) => {
const match = node.text.match(/Task (d+)/);
if (match) {
return {
...node,
marks: [
{
type: 'link',
attrs: {
href: `https://tasks.example.com/task-${match[1]}`
}
}
]
}
}
}
});
console.log(JSON.stringify(linkified));
$
TRAVERSE
const { traverse } = require('@atlaskit/adf-utils/traverse');
const linkified = traverse(document, {
text: (node, parent) => {
const match = node.text.match(/Task (d+)/);
if (match) {
return {
...node,
marks: [
{
type: 'link',
attrs: {
href: `https://tasks.example.com/task-${match[1]}`
}
}
]
}
}
}
});
console.log(JSON.stringify(linkified));
$ cat document.json
TRAVERSE
$
const { traverse } = require('@atlaskit/adf-utils/traverse');
const linkified = traverse(document, {
text: (node, parent) => {
const match = node.text.match(/Task (d+)/);
if (match) {
return {
...node,
marks: [
{
type: 'link',
attrs: {
href: `https://tasks.example.com/task-${match[1]}`
}
}
]
}
}
}
});
console.log(JSON.stringify(linkified));
{
"type": "paragraph",
"content": [
{
"text": "Task 1",
"type": "text"
}
]
}
$ cat document.json
TRAVERSE
$ node src/traverse.js
const { traverse } = require('@atlaskit/adf-utils/traverse');
const linkified = traverse(document, {
text: (node, parent) => {
const match = node.text.match(/Task (d+)/);
if (match) {
return {
...node,
marks: [
{
type: 'link',
attrs: {
href: `https://tasks.example.com/task-${match[1]}`
}
}
]
}
}
}
});
console.log(JSON.stringify(linkified));
{
"type": "paragraph",
"content": [
{
"text": "Task 1",
"type": "text"
}
]
}
$ cat document.json
TRAVERSE
$ node src/traverse.js
const { traverse } = require('@atlaskit/adf-utils/traverse');
const linkified = traverse(document, {
text: (node, parent) => {
const match = node.text.match(/Task (d+)/);
if (match) {
return {
...node,
marks: [
{
type: 'link',
attrs: {
href: `https://tasks.example.com/task-${match[1]}`
}
}
]
}
}
}
});
console.log(JSON.stringify(linkified));
{
"type": "paragraph",
"content": [
{
"text": "Task 1",
"type": "text"
}
]
}
$ cat document.json
{
"type": "paragraph",
"content": [
{
"text": "Task 1",
"type": "text",
"marks": [
{
"type": "link",
"attrs": {
"href": "https://tasks.example.com/task-1"
}
}
]
}
]
}
Rendering Documents
RENDERING
import React, { Component } from 'react';
import { ReactRenderer } from '@atlaskit/renderer';
import { doc, p, text, strong } from '@atlaskit/adf-utils/builders';
const document = doc(
p(
text('some '),
strong(text('formatted')),
text(' content')
)
);
export default class MyComponent extends Component {
render() {
return (
<ReactRenderer document={document} />
);
}
}
Tools
TOOLS: REFERENCE DOCUMENTATION
Node Types
All node types that are
supported in a product,
along with their attributes.
Examples
How each node type is used in
practice.
TOOLS: ADF BUILDER
Usage
Create a document using the
editor and see the resulting
ADF.
Limits
Node types like mentions,
actions or images are not
supported.
TOOLS: ADF VIEWER
Usage
Paste an ADF document to
review how it
Limits
Node types like images or
smart links are not supported.
Examples & Links:

https://bit.ly/atlascamp-adf
PATRICK STREULE | ARCHITECT | ATLASSIAN | @PSTREULE
Thank you!

More Related Content

What's hot

AtlasCamp 2015: Web technologies you should be using now
AtlasCamp 2015: Web technologies you should be using nowAtlasCamp 2015: Web technologies you should be using now
AtlasCamp 2015: Web technologies you should be using nowAtlassian
 
AtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and ServerAtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and ServerAtlassian
 
Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)Varun Torka
 
RESTful API Design Best Practices Using ASP.NET Web API
RESTful API Design Best Practices Using ASP.NET Web APIRESTful API Design Best Practices Using ASP.NET Web API
RESTful API Design Best Practices Using ASP.NET Web API💻 Spencer Schneidenbach
 
Serverless Orchestration with AWS Step Functions
Serverless Orchestration with AWS Step FunctionsServerless Orchestration with AWS Step Functions
Serverless Orchestration with AWS Step FunctionsAmazon Web Services
 
Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)Ville Seppänen
 
Building Beautiful REST APIs with ASP.NET Core
Building Beautiful REST APIs with ASP.NET CoreBuilding Beautiful REST APIs with ASP.NET Core
Building Beautiful REST APIs with ASP.NET CoreStormpath
 
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday HoustonCSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday HoustonKunaal Kapoor
 
AtlasCamp 2015: Using add-ons to build add-ons
AtlasCamp 2015: Using add-ons to build add-onsAtlasCamp 2015: Using add-ons to build add-ons
AtlasCamp 2015: Using add-ons to build add-onsAtlassian
 
Prairie DevCon 2015 - Crafting Evolvable API Responses
Prairie DevCon 2015 - Crafting Evolvable API ResponsesPrairie DevCon 2015 - Crafting Evolvable API Responses
Prairie DevCon 2015 - Crafting Evolvable API Responsesdarrelmiller71
 
Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)Paco de la Cruz
 
Building Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET CoreBuilding Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET CoreStormpath
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointMark Rackley
 
SharePoint REST vs CSOM
SharePoint REST vs CSOMSharePoint REST vs CSOM
SharePoint REST vs CSOMMark Rackley
 
SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Act...
SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Act...SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Act...
SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Act...Geoff Varosky
 
Parse cloud code
Parse cloud codeParse cloud code
Parse cloud code維佋 唐
 
Zensations Drupal 8 GraphQL Presentation 2015
Zensations Drupal 8 GraphQL Presentation 2015Zensations Drupal 8 GraphQL Presentation 2015
Zensations Drupal 8 GraphQL Presentation 2015Zensations GmbH
 
Declaring Server App Components in Pure Java
Declaring Server App Components in Pure JavaDeclaring Server App Components in Pure Java
Declaring Server App Components in Pure JavaAtlassian
 
A tech writer, a map, and an app
A tech writer, a map, and an appA tech writer, a map, and an app
A tech writer, a map, and an appSarah Maddox
 

What's hot (20)

AtlasCamp 2015: Web technologies you should be using now
AtlasCamp 2015: Web technologies you should be using nowAtlasCamp 2015: Web technologies you should be using now
AtlasCamp 2015: Web technologies you should be using now
 
AtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and ServerAtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and Server
 
Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)Making connected apps with BaaS (Droidcon Bangalore 2014)
Making connected apps with BaaS (Droidcon Bangalore 2014)
 
RESTful API Design Best Practices Using ASP.NET Web API
RESTful API Design Best Practices Using ASP.NET Web APIRESTful API Design Best Practices Using ASP.NET Web API
RESTful API Design Best Practices Using ASP.NET Web API
 
Serverless Orchestration with AWS Step Functions
Serverless Orchestration with AWS Step FunctionsServerless Orchestration with AWS Step Functions
Serverless Orchestration with AWS Step Functions
 
Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)
 
Building Beautiful REST APIs with ASP.NET Core
Building Beautiful REST APIs with ASP.NET CoreBuilding Beautiful REST APIs with ASP.NET Core
Building Beautiful REST APIs with ASP.NET Core
 
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday HoustonCSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
 
AtlasCamp 2015: Using add-ons to build add-ons
AtlasCamp 2015: Using add-ons to build add-onsAtlasCamp 2015: Using add-ons to build add-ons
AtlasCamp 2015: Using add-ons to build add-ons
 
Prairie DevCon 2015 - Crafting Evolvable API Responses
Prairie DevCon 2015 - Crafting Evolvable API ResponsesPrairie DevCon 2015 - Crafting Evolvable API Responses
Prairie DevCon 2015 - Crafting Evolvable API Responses
 
Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)
 
Building Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET CoreBuilding Beautiful REST APIs in ASP.NET Core
Building Beautiful REST APIs in ASP.NET Core
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePoint
 
SharePoint REST vs CSOM
SharePoint REST vs CSOMSharePoint REST vs CSOM
SharePoint REST vs CSOM
 
Node.js and Parse
Node.js and ParseNode.js and Parse
Node.js and Parse
 
SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Act...
SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Act...SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Act...
SharePoint Saturday Baltimore 7/25/09 - Introduction To Developing Custom Act...
 
Parse cloud code
Parse cloud codeParse cloud code
Parse cloud code
 
Zensations Drupal 8 GraphQL Presentation 2015
Zensations Drupal 8 GraphQL Presentation 2015Zensations Drupal 8 GraphQL Presentation 2015
Zensations Drupal 8 GraphQL Presentation 2015
 
Declaring Server App Components in Pure Java
Declaring Server App Components in Pure JavaDeclaring Server App Components in Pure Java
Declaring Server App Components in Pure Java
 
A tech writer, a map, and an app
A tech writer, a map, and an appA tech writer, a map, and an app
A tech writer, a map, and an app
 

Similar to Integrate CI/CD Pipelines with Jira Software Cloud

Cassandra 3.0 - JSON at scale - StampedeCon 2015
Cassandra 3.0 - JSON at scale - StampedeCon 2015Cassandra 3.0 - JSON at scale - StampedeCon 2015
Cassandra 3.0 - JSON at scale - StampedeCon 2015StampedeCon
 
Mongokit presentation mongofr-2010
Mongokit presentation mongofr-2010Mongokit presentation mongofr-2010
Mongokit presentation mongofr-2010namlook
 
Jquery presentation
Jquery presentationJquery presentation
Jquery presentationguest5d87aa6
 
Mongo db勉強会20110730
Mongo db勉強会20110730Mongo db勉強会20110730
Mongo db勉強会20110730Akihiro Okuno
 
Start an Angular project fast, then go faster using AWS and Back&
Start an Angular project fast, then go faster using AWS and Back&Start an Angular project fast, then go faster using AWS and Back&
Start an Angular project fast, then go faster using AWS and Back&Backand Cohen
 
Avro, la puissance du binaire, la souplesse du JSON
Avro, la puissance du binaire, la souplesse du JSONAvro, la puissance du binaire, la souplesse du JSON
Avro, la puissance du binaire, la souplesse du JSONAlexandre Victoor
 
Processing XML and Spreadsheet data in Go
Processing XML and Spreadsheet data in GoProcessing XML and Spreadsheet data in Go
Processing XML and Spreadsheet data in GoRi Xu
 
Miracle Open World 2011 - XML Index Strategies
Miracle Open World 2011  -  XML Index StrategiesMiracle Open World 2011  -  XML Index Strategies
Miracle Open World 2011 - XML Index StrategiesMarco Gralike
 
Modernizes your objective C - Oliviero
Modernizes your objective C - OlivieroModernizes your objective C - Oliviero
Modernizes your objective C - OlivieroCodemotion
 
Cool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearchCool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearchclintongormley
 
ELK Stack - Turn boring logfiles into sexy dashboard
ELK Stack - Turn boring logfiles into sexy dashboardELK Stack - Turn boring logfiles into sexy dashboard
ELK Stack - Turn boring logfiles into sexy dashboardGeorg Sorst
 
An Overview of HTML, CSS & Java Script
An Overview of HTML, CSS & Java ScriptAn Overview of HTML, CSS & Java Script
An Overview of HTML, CSS & Java ScriptFahim Abdullah
 
Semantic Web & TYPO3
Semantic Web & TYPO3Semantic Web & TYPO3
Semantic Web & TYPO3André Wuttig
 
Elasticsearch for SQL Users
Elasticsearch for SQL UsersElasticsearch for SQL Users
Elasticsearch for SQL UsersAll Things Open
 
Building DSLs with the Spoofax Language Workbench
Building DSLs with the Spoofax Language WorkbenchBuilding DSLs with the Spoofax Language Workbench
Building DSLs with the Spoofax Language WorkbenchEelco Visser
 
Elasticsearch intro output
Elasticsearch intro outputElasticsearch intro output
Elasticsearch intro outputTom Chen
 

Similar to Integrate CI/CD Pipelines with Jira Software Cloud (20)

Cassandra 3.0 - JSON at scale - StampedeCon 2015
Cassandra 3.0 - JSON at scale - StampedeCon 2015Cassandra 3.0 - JSON at scale - StampedeCon 2015
Cassandra 3.0 - JSON at scale - StampedeCon 2015
 
Sencha Touch Intro
Sencha Touch IntroSencha Touch Intro
Sencha Touch Intro
 
Mongokit presentation mongofr-2010
Mongokit presentation mongofr-2010Mongokit presentation mongofr-2010
Mongokit presentation mongofr-2010
 
Jquery presentation
Jquery presentationJquery presentation
Jquery presentation
 
Mongo db勉強会20110730
Mongo db勉強会20110730Mongo db勉強会20110730
Mongo db勉強会20110730
 
Start an Angular project fast, then go faster using AWS and Back&
Start an Angular project fast, then go faster using AWS and Back&Start an Angular project fast, then go faster using AWS and Back&
Start an Angular project fast, then go faster using AWS and Back&
 
Avro, la puissance du binaire, la souplesse du JSON
Avro, la puissance du binaire, la souplesse du JSONAvro, la puissance du binaire, la souplesse du JSON
Avro, la puissance du binaire, la souplesse du JSON
 
Processing XML and Spreadsheet data in Go
Processing XML and Spreadsheet data in GoProcessing XML and Spreadsheet data in Go
Processing XML and Spreadsheet data in Go
 
Coding Ajax
Coding AjaxCoding Ajax
Coding Ajax
 
Miracle Open World 2011 - XML Index Strategies
Miracle Open World 2011  -  XML Index StrategiesMiracle Open World 2011  -  XML Index Strategies
Miracle Open World 2011 - XML Index Strategies
 
Javascript2839
Javascript2839Javascript2839
Javascript2839
 
Json
JsonJson
Json
 
Modernizes your objective C - Oliviero
Modernizes your objective C - OlivieroModernizes your objective C - Oliviero
Modernizes your objective C - Oliviero
 
Cool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearchCool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearch
 
ELK Stack - Turn boring logfiles into sexy dashboard
ELK Stack - Turn boring logfiles into sexy dashboardELK Stack - Turn boring logfiles into sexy dashboard
ELK Stack - Turn boring logfiles into sexy dashboard
 
An Overview of HTML, CSS & Java Script
An Overview of HTML, CSS & Java ScriptAn Overview of HTML, CSS & Java Script
An Overview of HTML, CSS & Java Script
 
Semantic Web & TYPO3
Semantic Web & TYPO3Semantic Web & TYPO3
Semantic Web & TYPO3
 
Elasticsearch for SQL Users
Elasticsearch for SQL UsersElasticsearch for SQL Users
Elasticsearch for SQL Users
 
Building DSLs with the Spoofax Language Workbench
Building DSLs with the Spoofax Language WorkbenchBuilding DSLs with the Spoofax Language Workbench
Building DSLs with the Spoofax Language Workbench
 
Elasticsearch intro output
Elasticsearch intro outputElasticsearch intro output
Elasticsearch intro output
 

More from Atlassian

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020Atlassian
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020Atlassian
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App ShowcaseAtlassian
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UIAtlassian
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge RuntimeAtlassian
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceAtlassian
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge TriggersAtlassian
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeAtlassian
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelAtlassian
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemAtlassian
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginAtlassian
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingAtlassian
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterAtlassian
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindAtlassian
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Atlassian
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsAtlassian
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamAtlassian
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in MindAtlassian
 
Shipping With Velocity and Confidence Using Feature Flags
Shipping With Velocity and Confidence Using Feature FlagsShipping With Velocity and Confidence Using Feature Flags
Shipping With Velocity and Confidence Using Feature FlagsAtlassian
 
Build With Heart and Balance, Remote Work Edition
Build With Heart and Balance, Remote Work EditionBuild With Heart and Balance, Remote Work Edition
Build With Heart and Balance, Remote Work EditionAtlassian
 

More from Atlassian (20)

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App Showcase
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UI
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge Runtime
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User Experience
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge Triggers
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in Forge
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy Model
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI System
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the Building
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that Matter
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in Mind
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced Teams
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in Mind
 
Shipping With Velocity and Confidence Using Feature Flags
Shipping With Velocity and Confidence Using Feature FlagsShipping With Velocity and Confidence Using Feature Flags
Shipping With Velocity and Confidence Using Feature Flags
 
Build With Heart and Balance, Remote Work Edition
Build With Heart and Balance, Remote Work EditionBuild With Heart and Balance, Remote Work Edition
Build With Heart and Balance, Remote Work Edition
 

Recently uploaded

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 

Recently uploaded (20)

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Integrate CI/CD Pipelines with Jira Software Cloud