New components, rate limits, and other improvements

:tada: ADDED - New components in UI kit version 0.11.0
We’ve released Heading and Tabs components in the UI kit.

Run npm install @forge/ui@latest in your app directory on the command line to install the latest version of the UI kit.

:tada: ADDED - Rate limit for invoke in Forge bridge version 1.2.0

We’re introducing a rate limit for invoke, which is now at 20 requests for every two seconds.

Run npm install @forge/bridge@latest in your resource directory to install the latest version of Forge bridge.

:sparkles: UPDATED - New components available for use with CustomField UI Kit component

We’ve added more components that you can use with the CustomField component:

:sparkles: UPDATED - Updates to the image-src CSP

The domain api.atlassian.com is now a valid source for images. You need to redeploy your app with the forge deploy command for the changes to take effect.

:wrench: BUG FIX - in Forge bridge version 1.2.0

Custom UI bridge now supports hot reloading, where the bridge continues to work after a refresh happens.

Run npm install @forge/bridge@latest in your resource directory to install the latest version of Forge bridge.

:wrench: BUG FIX - in Forge resolver version 1.1.0

Custom UI resolver context now includes the license field.

Run npm install @forge/resolver@latest in your app directory on the command line to install the latest version of Forge resolver.

:wrench: BUG FIX - in Forge CLI version 1.2.0

The linter now reports invalid function handlers.

Run npm install -g @forge/cli@latest on the command line to install the latest version of Forge CLI.

5 Likes

Hi @RyanBraganza, can you elaborate on this? Does this mean if my app page executes 3 invoke calls on load and is opened by 10 users within 2 seconds (which is not unlikely on a big instance) my app will break?

2 Likes

Hi @sven.schatter, this limit is per-iframe. So your use case is perfectly fine here.

4 Likes

Ah, thanks a lot for clarifying! Makes sense :slight_smile:

To follow up on on @sven.schatter’s question - what happens when we hit 20 requests in 2 seconds? Will invoke, requestConfluence, requestJira automatically throttle us (cause that would be really nice) or is there an error thrown with throttling headers (which would be not-as-nice-but-still-nice) or we have to track this ourselves (which would be a pain)?

Assuming it’s the last one - is there’s a reason why this is 20 requests in 2 seconds and not 10 request in 1 second?

/Daniel

2 Likes

Same question from my side. There is already a limit of 50 requests per second on requestJira. Then a limit on storage API (with almost no query functionality) a.s.o.
Will there be a possibility to increase this limit some time in the future?
For example: A customer has many issues or fields. We need to use pagination, therefore we might have many requests to requestJira.
Or for example the limit on storage API results is 20. We might need to use the cursor pagination there as well.
I would really love to see an improved storage API with “query by value” not only “by key”.
That would solve most of my problems :slight_smile:

3 Likes

Hey there :wave:

I have a question regarding the image-src CSP update:

Which resources can now be included? I still fail to include both attachment-images and profile pictures from Confluence when using custom UI. Is this CSP-Header Jira-only?
Would love to include profile pictures and attachments in confluence apps.

1 Like

It’s the latter - you’ll get an Error thrown from invoke or request*. The error doesn’t currently include the specific details on when to retry-after, I’ll take this back to the team.

We’ve chosen to make it 20 requests in 2 seconds to give a little more flexibility in how you use your requests. For example, you could make 20 requests in 1 second, (and no requests in the following second) with the 20/2s limit, which you couldn’t do if the limit was 10/1s.

1 Like

Will there be a possibility to increase this limit some time in the future?

Yes, this limit (and others) are not set in stone. It’s just a starting point.

2 Likes

This allows Jira project avatars to be displayed, e.g. https://api.atlassian.com/ex/jira/fff89a1a-52c8-11e5-91b2-3c15c2bd8caa-ecosystem/secure/projectavatar?pid=28269&size=large&avatarId=35795

I’ve noted the profile picture/attachment use case on [FRGE-197] - Ecosystem Jira

2 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.