Make `URLSession` Configurable
Is your feature request related to a problem? Please describe.
We are unable to configure the URLSession beyond the default settings, see: https://github.com/box/box-ios-sdk/blob/a395222866dd441f474f25fbe15837ae37662e68/Sources/Network/BoxNetworkAgent.swift#L61
This restricts our ability to create background URLSessions with custom configurations, particularly concerning setting session identifiers and shared container identifiers.
Describe the solution you'd like
We propose updating the BoxNetworkAgent to create the URLSession based on some sort of configuration. One way could be to extend the BoxSDKConfiguration to accept a URLSessionConfiguration.
Describe alternatives you've considered
There isn't really an alternative. Since we're implementing a File Provider extension, we require the URLSessions to be configured as a background session.
Additional context
We are willing to contribute to implementing this feature and are open to creating a pull request. However, we would appreciate guidance from you to ensure the feature aligns with your best practices for your library.
Hi @tobihagemann,
Absolutely, I encourage you to contribute to the project 💯 As you've probably noticed, we strive to avoid introducing breaking changes in the project. Additionally, it's a requirement for incoming changes to have test coverage.
But before you embark on that journey, I'll just mention that we're currently putting a lot of effort into the new box-swift-sdk-gen🚀, which should be officially released this year. It's entirely generated using our tool, which creates the SDKs based on our public API. As of now, the project is fully functional, but we're constantly developing it, which may result in breaking changes, though they shouldn't be significant.
In the new SDK, when creating a BoxClient, you can pass a NetworkSession, which accepts the parameter URLSessionConfiguration that you mentioned here. You can find more information at this link.
Oh, we didn't know about this new SDK. 😮 And indeed, it would probably already solve our issue if you're able to pass a URLSessionConfiguration. I guess, we'll take a look at it. Will there be a new tag in the near future, or will it stay at v0.1.0 for a while? Or what would you recommend for us?
Hi @tobihagemann,
I've just released a new version v0.2.0, which includes our latest changes, so I recommend using it :)