Include web resources conditionally with CDN feature support (Jira 8.3 compatibility)

Alexey Stepanov [ALM Works] August 5, 2019

After Jira DC (8.3) compatibility with CDN announcement we have faced the problem with one of our conditionally included resources that we have to convert to stateless conditioning.

There is a resource (Javascript + CSS) with a significant size (couple of MB) and significant initialization time that should be included into jira.view.issue context (page body) depending on user settings. There are couple of ways to make it CDN compatible (stateless):

  • just remove stateful condition - users who should not load the resource will have page load extra time overhead.
  • move scripts to web-panel - bad idea in any case. Script will load and initialize on any issue change in issue navigator.
  • use stateless condition - will require to include user key/id into resource URL that seem also bad. CDN will have a huge set of identical resources for each user.
  • include resource and its dependencies by small bootstrap script inserting resources tags into body - will also affect page load and probably CDN effectiveness because such resources will not bundled into batch

So is there any legal and performance efficient way to make such conditional resource include?

--

Alexey Stepanov | ALM Works Structure development team

1 comment

Comment

Log in or Sign up to comment
Alexey Stepanov [ALM Works] August 11, 2019

Seems this should be posted to dev community :)

Any way the solution is to calculate condition on resource URL build time and put result into URL params. The only thing you will not be able to deel with such approach is security - URL params can be modified by somebody and resource can be disclosed.

TAGS
AUG Leaders

Atlassian Community Events