feat: a fourth surface, for Jira Data Center - #451
Open
MrRefactoring wants to merge 1 commit into
Open
Conversation
Four hundred and forty-four operations across sixty-one modules, generated from the Jira Data Center 11.3 LTS specification and usable against Data Center 10.0 and later. `createServerClient` is a surface of its own rather than the Cloud client pointed at another host, because the two APIs differ in more than their address: `/rest/api/2` against `/rest/api/3`, wiki markup against Atlassian Document Format, `name` and `key` against `accountId`. Of the four hundred and forty-four operations, two hundred and six share a name with a Cloud one and eighty-seven share a model name; nothing else is common but the transport. Data Center publishes its platform, Agile and session endpoints as one document, so unlike Cloud there is no separate Agile factory — boards and sprints sit in the same client as issues. Every one of those operations is called against a running instance. Atlassian generates this document from Java annotations rather than writing it, and it is wrong in ways reading cannot reveal, so the suite brings up a throwaway instance in Docker — `pnpm jira-dc:up` — and walks the whole surface. `pnpm coverage:server` reports which endpoints a run actually reached, because a domain that quietly stops being exercised otherwise looks exactly like one that passes. The nine operations that arrived after 10.0 carry an `@since` note naming the release each can be relied on from. Jira 9.x is not supported: Atlassian never published an OpenAPI document for it, and the line reached end of life on 26 June 2026. The Cloud live and audit runs exclude this suite. It answers to a container that has to be brought up first and to a global setup of its own; left in, it would not merely fail but fail with `undefined` where its fixtures should be.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Seventh of eight, splitting #443. Base is
feat/organization-apis(#450); the diff here is the increment alone — 846files.
No issue behind this one. The tracker has none for Data Center —
data center,self-hostedanddatacenterreturn nothing, and #96 and #86 were closed years ago. This is one of the two phases you agreed to take without one.
444 operations, 61 modules
Generated from the Jira Data Center 11.3 LTS specification, usable against Data Center 10.0 and later. Counts
verified against the tree: 61
import * asmodules on the client, 444 exported operations.createServerClientis a surface of its own rather than the Cloud client pointed elsewhere./rest/api/2against/rest/api/3, wiki markup against ADF,nameandkeyagainstaccountId— 206 operations share a name with aCloud one and 87 share a model name, and nothing else is common but the transport. Data Center publishes platform,
Agile and session as one document, so there is no separate Agile factory: boards and sprints sit in the client with
issues.
The nine operations that arrived after 10.0 carry an
@sincenote. Jira 9.x is unsupported — Atlassian published noOpenAPI document for it, and the line reached end of life on 26 June 2026.
The rig
docker/jira-dc/compose.yamlplusscripts/jiraDc.tsbring up a throwaway instance;pnpm coverage:serverreportswhich endpoints a run actually reached. The container is deliberately not started by the test run — a cold instance
takes minutes to reach
RUNNINGand its licence is a three-hour timebomb, so one instance serves many iterations.The Cloud live and audit runs now exclude
tests/live/server/**. Without that they would try to reach a containerthat is not there — and fail with
undefinedwhere fixtures should be, rather than with a connection error, becausethis suite has a global setup of its own. That exclusion did not exist on master and is added here.
Two things worth flagging
A test licence nearly got committed.
docker/*/timebomb-license.txtis an Atlassian evaluation licence — theirsto publish, not ours to redistribute.
.gitignorecovers both rigs' licences now, and I verified nothing of the sortwas ever committed anywhere in this stack or on the source branch.
scripts/lib/dcRig.tshad a docblock claiming two rigs use it. True on the source branch, not true here until thenext pull request. Reworded to describe what the module is parameterised by, which is accurate in both states and
needs no follow-up edit.
Verified
typecheck,lint,test(264 — this surface carries a live suite, not unit tests),build,check:browser(21 entry points, clean
dist, 3303 runtime files),check:consumers,docs:api— all pass locally, nowarnings.
The Data Center live suite is not run here: it needs the Docker rig and a licence, which CI has as its own workflow
(
live-tests-dc.yaml, added in this pull request) rather than as part of the pull-request checks.