All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.20.0 - 2024-12-02
- Support for opentelemetry 0.27, now the default version.
- Added gRPC injector to help passing opentelemetry tracing context when doing gRPC calls.
0.19.0 - 2024-11-25
- Support for the option
pool_idle_timeout
in the client builder
- Drop support for opentelemetry 0.20
0.18.0 - 2024-10-22
- Support for opentelemetry 0.26, now the default version.
0.17.0 - 2024-09-27
- Support for opentelemetry 0.25, now the default version.
0.16.6 - 2024-09-05
- Support for opentelemetry 0.24, now the default version.
0.16.6 - 2024-08-23
- The library no longer validates tokens after recieving them from auth0
This was unneccessary, already wasn't done in some code paths, and as a bonus let us remove a dependency.
- When first creating the client if bridge.rs fails to decrypt a cached token a warning will be logged, and a new token will be fetched
This behavior matches what happens when a token is automatically refreshed during the applications runtime, and should help address issues that might come up in the future.
- The cache key now contains a cache version, allowing its schema to be updated in the future
From now on cache keys will use the following format:
auth0rs_tokens:{caller}:{token_version}:{audience}"
eg.
auth0rs_tokens:wingman:2:galactus"
0.16.5 - 2024-07-10
- Switched to using XChaCha20Poly1305 for the redis token cache encryption.
This addresses a few medium severity security issues with the tokens. Note that this means that this, and future versions of the library cannot be used at the same time as older versions.
- Support for opentelemetry 0.23, now the default version.
tracing_opentelemetry_0_23
feature
0.16.3 - 2024-05-22
- The authority server successful response might not include the
scope
field, that is now optional.
0.16.2 - 2024-05-10
- Support for opentelemetry 0.22
tracing_opentelemetry_0_22
featuretracing_opentelemetry
is now an alias for the latest version of otel(sotracing_opentelemetry_0_22
)
Opentelemetry 0.20 or 0.21 support can be enabled by enabling the
tracing_opentelemetry_0_20
or tracing_opentelemetry_0_21
features
respectively instead of tracing_opentelemetry.
0.16.1 - 2024-05-02
- Added jwks_client_rs instead of reimplementing it's functionality
- Updated reqwest to 0.12, reqwest-middleware to 0.3 and http to 1.0
0.16.0 - 2024-03-11
- Support for opentelemetry 0.21
tracing_opentelemetry_0_20
andtracing_opentelemetry_0_21
featurestracing_opentelemetry
is now an alias for the latest version of otel(sotracing_opentelemetry_0_21
)
Opentelemetry 0.20 support can be enabled by enabling the
tracing_opentelemetry_0_20
feature instead of tracing_opentelemetry. We are
going to support at least the last 3 versions of opentelemetry. After that we
mightremove support for older otel version without it being a breaking change.
0.15.1 - 2023-10-20
scope
for auth0 token request
0.15.0 - 2023-09-20
- Support for reqwest_middleware
- MSRV is 1.72, for rust-lang/rust#107557
0.14.6 - 2023-08-24
otel
module is imported only iftracing_opentelemetry
feature is defined
0.14.5 - 2023-08-23
- Allow opentelemetry 0.20
0.14.4 - 2023-05-29
- Updates Auth0 token refresh logic to reduce the number of token renewals (#122)
0.14.3 - 2022-11-02
- Added method to customize
pool_max_idle_per_host
from the builder
0.14.2 - 2022-10-04
- Introduced the new
redis-tls
feature that enables the tls authentication for the redis client
0.14.1 - 2022-09-28
- Reintroduced
{RestRequest, GraphQLRequest}.get_body
for public use.
The method was publicly accessible before 0.14.0 but was undocumented and meant only for internal use. - Added
BridgeBuilder.with_redirect_policy
to specify how the Bridge should handle HTTP redirects
0.14.0 - 2022-09-26
- Added the ability to send files via REST multipart requests by using the new
RestRequest.multipart_body
method.
Refer to the example in the repository to see how to use the new APIs. - Added
{RestRequest, GraphQLRequest}.with_custom_header
to set a single custom header for a request
- (BREAKING)
Multipart
has been renamed intoGraphQLMultipart
to avoid ambiguity withRestMultipart
MultipartFile::new
now accepts anything that can be converted into aBody
instead of just aVec<u8>
.
This allows to provide the file content from a stream, which can be useful in case you want to send a file, but you don't want to load it in memory all at once.- To better support this use case, a
tokio::fs::File
can now be converted into a
Body
too
- To better support this use case, a
tokio::fs::File
can now be converted into a
- Reduced cloning and allocations throughout the library
- Re-exported more types at the top level of the crate
- (BREAKING)
{RestRequest, GraphQLRequest}.add_custom_headers
andset_custom_headers
: usewith_custom_headers
instead (GraphQL)Multipart.into_form
: it is a private API that wasn't meant to be exported publiclyasync
feature: it was enabled by default and disabling it caused compilation to break
0.13.1 - 2022-06-23
- New function
status_code
to getStatusCode
fromResponse
.
- removed
block_modes
deprecated dependency in favour of the newcbc
dependency - broaden the dependency on uuid to support 1.x versions
blocking
feature. The library is now async only. (breaking change)- the old
new
andwith_user_agent
functions deprecated in 0.7.3
- graphql multipart request as specified here.
- examples for rest, graphql, graphql multipart and generic request with auth0 authentication.
- opentelemetry updated to version 0.17. Careful!!! The opentelemetry version in your project should match the one in this library (breaking change)
- various dependency updates
- removed log dependency, use tracing everywhere
- dashmap dependency updated (#64)
- test fix
- lint fix
- Rust 1.56 & Edition 2021
- Update tracing-opentelemetry to 0.16
- Other deps updated
- Documentation now shows required features
- added new function
with_auth0
in bridge builder. This enables jwt authentication to called endpoint.
- deprecated the
new
andwith_user_agent
functions in favor of a builder - opentelemetry updated to version 0.16. Careful!!! The opentelemetry version in your project should match the one in this library
- several dependencies updated
- docker file based on Rust 1.54
- fixes the double header issue (#17)
- adds support for the
gzip
feature, which decompress the response content based on the content-type header - proper handling of graphql errors with a new
ParsedGraphqlResponse
type - adds ability to specify a request timeout
- opentelemetry updated to version 0.13. Careful!!! The opentelemetry version in your project should match the one in this library
- several dependencies updated
- docker file based on Rust 1.51
- opentelemetry updated to version 0.12. Careful!!! The opentelemetry version in your project should match the one in this library
- several dependencies updated
- tokio and tokio-test are now dev-dependencies
- bump tokio to 1.0, which brings rustc minimum version to 1.45
- relaxed the uuid requirement
- opentelemetry updated to version 0.11. Careful!!! The opentelemetry version in your project should match the one in this library
- tracing-opentelemetry updated to version 0.10. Careful!!! The tracing-opentelemetry version in your project should match the one in this library
- adds the ability to set user-agent header
- opentelemetry updated to version 0.10.0. Careful!!! The opentelemetry version in your project should match the one in this library
- adds support for raw body response (PR #21)
- removed the bridge.request api (deprecated) in favor of
Request::get
orRestRequest::new
andGraphQLRequest::new
functions.
- fixes the test suite. No impact on the api.
- double content-type header for graphql request
- better handling of headers
- adds back the
with_query_pair
andwith_query_pairs
api
- adds the ability to use a binary as the body of a request. The api has changed:
before
let body: Option<String> = None;
bridge.request(RequestType::rest(body, Method::GET)).send();
now
RestRequest::new(&bridge).send();
// OR
Request::rest(&bridge).send()
The old API is still available but deprecated. It will be removed soon.