A httpx client with conda authentication and telemetry support.
Adapts conda's requests-based auth handler plugins to httpx, automatically loading conda-provided credentials as necessary.
- Provide a single
httpx.Clientandhttpx.AsyncClientthat authenticates to conda services, in the same way that conda'sget_session(url)does but without requiring a separate client per URL. - Support existing conda authentication plugins.
- Support other conda plugins that modify headers sent during requests, such as telemetry plugins.
- Improve efficiency of conda authentication by avoiding
Channel()calls when possible. - Avoid token-in-URL forms of authentication.
- Support
truststore. - Support proxy configuration from conda.
- Interoperate with Python software that wants a httpx client.
- Have excellent test coverage.
- Request Headers plugins,
conda_session_headers,conda_request_headersas get_cached_*_headers() on CondaPluginManager - Auth Handlers plugins, configurable per channel.
- CondaHttpAuth, predates the plugin API, supports binstar tokens and Proxy-Authorization.
- conda-anaconda-telemetry using
conda_request_headersplugin hook. - anaconda-auth, a CLI to set up authentication to Anaconda services. AnacondaAuthHandler loads the token.
- conda-auth