atlassian
KickSide Atlassian — Jira and Confluence provider. Self-declares as an oauth_provider discovered by kickside/oauth (3LO) and supports stored-credential connections (Cloud API token / Server PAT). Ships agent tools (JiraRead/JiraWrite, ConfluenceRead/ConfluenceWrite) over a shared authenticated transport.
Run
wippy run kickside/atlassianKickSide Atlassian
Jira and Confluence provider for KickSide.
Auth
Two connection modes resolve to a single authenticated transport, so the service and tool layers never branch on auth:
- OAuth (3LO) — self-declared
oauth_provider: atlassian, discovered bykickside/oauthand run throughkickside.oauth:base_connector. Tokens are stored and refreshed by the oauth subsystem, keyed by the connectioncomponent_id.transport.connectresolves the AtlassiancloudIdfrom/oauth/token/accessible-resourcesto build theapi.atlassian.com/exbase. - Stored credentials — one
kickside.connection:connectionbinding (provider: atlassian) covers both Jira and Confluence. Cloud uses Basicemail:api_token; Server/Data Center uses Bearer PAT. Secrets live in the connection component'sprivate_context.
Layout
core/— shared transport (auth + HTTP), site/base-url resolution, types.connection/— shared Atlassian connection binding and live Jira/Confluence resource discovery.jira/— Jira REST client and agent traits/tools.confluence/— Confluence REST client and agent traits/tools.
Planes
- A — agent tools: JiraRead/JiraWrite, ConfluenceRead/ConfluenceWrite over OAuth or credential connections.
- B — source flows: pullable source ports expose Jira issues and Confluence pages. Data Sync selects the connection and source configuration; the shared Automation engine owns scheduling, cursors, rounds, and delivery.
Jira source payload and cursor
The Jira Issues port declares the fields in item.payload as its output schema.
Pull envelopes carry item_key, dedup_key, op, and source_version separately.
issue_priority contains the Jira priority name; properties.priority retains
its original object. Content destinations can use title, content, and
content_type directly with a pass-through transform.
Cloud search uses nextPageToken and isLast. Each nonfinal cursor holds the
continuation token, the fixed JQL query, and the greatest observed update time.
A resumed or replayed page uses that same query. The final cursor clears the
page position and starts live polling after the committed update watermark.
Server/Data Center search retains startAt pagination with the same fixed-query
behavior. JiraRead and the Jira source render ADF descriptions as readable text, preserving
inline boundaries and line breaks. JiraRead also renders ADF comment bodies.