Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide a way to set timeout on requests made by box-node-sdk #871

Open
chenbauer opened this issue Jan 24, 2024 · 3 comments
Open

Provide a way to set timeout on requests made by box-node-sdk #871

chenbauer opened this issue Jan 24, 2024 · 3 comments

Comments

@chenbauer
Copy link

Is your feature request related to a problem? Please describe.

Currently the sdk sets no default timeout and provides no official configuration option to limit the request timeout. From @cypress/request documentation regarding timeouts:

Most requests to external servers should have a timeout attached, in case the server is not responding in a timely manner. Without a timeout, your code may have a socket open/consume resources for minutes or more.

During a recent Box outage our application requests were blocked by calls made by the sdk, which by default, retries 5 times before failing. We will reduce number of retries (which is configurable) but would also like a way to limit the request timeout.

Describe the solution you'd like

It would be great if we could set timeout per request (specifically for us - getAppUserTokens), but being able to set it globally in configure is also helpful.
Currently only uploadRequestTimeoutMS is officially supported -
https://rawgit.com/box/box-node-sdk/main/docs/jsdoc/global.html#UserConfigurationOptions

Describe alternatives you've considered

This is our current workaround -

this.boxSdk.configure({
            numMaxRetries: 2,
            request: { timeout: 2000 },
        });

Thanks!

@arjankowski
Copy link
Contributor

Hi @chenbauer, thanks for reporting.

We've created a Jira ticket on our side (SDK-3597), and together with the SDK team, we'll establish a schedule related to this feature.

However, I would like to confirm whether adding a timeout field in the configuration, which, when set, will be used in every request, meets your requirements?

Regards,
Artur

@chenbauer
Copy link
Author

Hi @arjankowski, thanks for the quick response!

If it's possible to make it configurable on the request level, it would be preferable for us; Otherwise, we'll achieve that by setting it right before the call we want it for, using configure, and then revert it.. (unless that approach won't work?)

Best,
Chen

@arjankowski
Copy link
Contributor

Adding a timeout at the configuration level would align us with the existing uploadTimeout, and this solution should address your issues. Nevertheless, we will also see how adding it at the request level would look.

Regards,
Artur

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants