I’m working on a project where I need to identify whether a specific Jira deployment is running on Cloud infrastructure or the Data Center edition just by looking at the hostname.
My initial approach was to check if the domain matches the pattern *.atlassian.net, but this method falls short because organizations can now configure custom domains for their Cloud instances. This makes hostname-based detection unreliable.
Has anyone dealt with a similar challenge? What would be the most effective way to programmatically distinguish between these two deployment types? Any suggestions or alternative approaches would be greatly appreciated.
Had this exact issue while auditing client environments last year. Best method I found was mixing serverInfo endpoint checks with network behavior analysis. Cloud instances have totally different response timing and connection handling than Data Center setups. The serverInfo endpoint gives you deployment metadata, but analyzing network characteristics really sealed the deal. Cloud deployments run through Atlassian’s CDN, creating specific latency patterns you can spot. Data Center instances hit you with direct server responses. Also check the JavaScript libraries on the login page - they’ll show version markers. This combo approach worked every time, even when custom domains hid the obvious hostname clues.
The X-AACCEPT-LANGUAGE and X-Atlassian-Token headers are distinctive identifiers. Cloud instances exhibit different header patterns compared to Data Center setups. I also monitor response times and SSL certificates; Cloud typically uses Atlassian’s standard certificates, while Data Center often has custom organizational certificates. Additionally, consider using the ‘/status’ endpoint, as its behavior varies between the two environments. Authentication methods also differ; Cloud requires API tokens, whereas Data Center generally accepts basic authentication.
Manual endpoint and header checking is a nightmare. Been there.
I’d build simple automation that hits multiple detection points at once. Set up a workflow checking the serverInfo endpoint, response headers, and SSL cert analysis together.
Build it once, run it whenever you need to identify deployment types across Jira instances. No more manual API calls or digging through headers.
I built something similar for our infrastructure audits. Takes 5 minutes to create a workflow that handles the detection logic and spits out clean results.
Latenode makes this easy - chain API calls, add conditional logic based on responses, store results for later. Way cleaner than custom scripts.
for sure! you can check the ‘/rest/api/2/serverInfo’ endpoint. it’ll give you distinct version strings for cloud vs datacenter. just keep an eye on the rate limits for cloud, they’re way stricter than datacenter!