feat(transport): support dynamic headers in transports #1788
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.
Why
Currently, the Faro Web SDK only allows to configure static headers for transport requests.
When sending data through a proxy it might require a valid authentication token (e.g. JWT). Since tokens can expire and need to be refreshed, we need a way to lookup dynamic header values for each request.
What
Extended the RequestOptions
headersto also support callback functions that return a header value. This change is implemented for the Fetch transport and to stay aligned also for the OLTP HTTP transport.I've not opted to also implement a Promise based asynchronous lookup. That would have significantly increased the change set. It is expected that any token refreshes are done by the application. When building requests by Faro we can directly lookup the currently available token.
Links
Addresses feature request #1490.
Checklist