Commit Graph

254 Commits

Author SHA1 Message Date
Quentin Gliech
1d0499ce68 Properly use rustls-platform-verifier with reqwest 2025-07-30 12:04:30 +02:00
Quentin Gliech
6421d9d1f5 Add license headers in most files that missed them 2025-06-12 11:01:07 +02:00
Quentin Gliech
52b0a9b2ba Update license headers to match the actual license 2025-06-12 10:32:16 +02:00
Quentin Gliech
69e3001966 Define all the dependencies at the workspace level 2025-06-10 14:25:38 +02:00
Quentin Gliech
b637e55f4a Remove the global read_timeout on the HTTP client
The `connect_timeout` plus `timeout` are enough to handle general
network issues
2025-04-28 19:39:46 +02:00
Quentin Gliech
eca6955f07 Remove explicit imports of std::future::Future, as it is now in the prelude 2025-02-21 16:24:53 +01:00
Quentin Gliech
56d9c7e63b Upgrade to Rust 1.85 and edition 2024 2025-02-21 16:15:02 +01:00
Quentin Gliech
cc618fa45d Update most Rust dependencies & disable some unused features 2025-02-06 12:50:50 +01:00
Quentin Gliech
8c358efd88 Update the rest of the OTEL deps and use the new APIs 2024-12-12 16:04:48 +01:00
Quentin Gliech
16f74fe87d Restore HTTP request metrics 2024-10-28 13:46:38 +01:00
Quentin Gliech
fc4808436a Fix HTTP request tracing and make the DNS resolver traced again 2024-10-28 13:46:38 +01:00
Quentin Gliech
8fb94ec662 Fix documentation link 2024-10-28 13:46:38 +01:00
Quentin Gliech
a88b7efe1e Replace all the manual HTTP clients with reqwest 2024-10-28 13:46:38 +01:00
Quentin Gliech
248e03ac93 Replace HTTP client in oidc-client with reqwest 2024-10-28 13:46:38 +01:00
Quentin Gliech
5b879bd4f4 WIP: switch to reqwest 2024-10-28 13:46:38 +01:00
dependabot[bot]
27c5c2c964 build(deps): bump futures-util from 0.3.30 to 0.3.31
Bumps [futures-util](https://github.com/rust-lang/futures-rs) from 0.3.30 to 0.3.31.
- [Release notes](https://github.com/rust-lang/futures-rs/releases)
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.30...0.3.31)

---
updated-dependencies:
- dependency-name: futures-util
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 19:04:27 +02:00
Quentin Gliech
9a946c19e7 Remove (C) 2024-09-10 14:28:55 +02:00
Quentin Gliech
9da19e2af0 License headers change 2024-09-05 13:25:42 +02:00
Quentin Gliech
1381e92409 Update opentelemetry to 0.24.0 2024-07-25 11:01:43 +02:00
Quentin Gliech
85186682d7 Fix mas-cli
This does a few things:

 - move `bytes` to workspace dependencies
 - write an hyper-based transport for Sentry
 - ignore OTEL errors related to propagations
 - fix everything else in mas-cli
2024-07-05 10:07:40 +02:00
Quentin Gliech
5162e1d5ef Write an adapter for opentelemetry-http 2024-07-05 10:07:40 +02:00
Quentin Gliech
cd899abed9 Move tower-http dep to the workspace and adapt mas-axum-utils
We removed here the Timeout layer on the HTTP client service, because it
required the body to be Default, which isn't the case anymore. Not sure
what to do about it.
2024-07-05 10:07:40 +02:00
Quentin Gliech
1e2d2a5139 Fix the mas-http tests 2024-07-05 10:07:40 +02:00
Quentin Gliech
623ae96dce Remove the client features from mas-oidc-client and replace it in tests 2024-07-05 10:07:40 +02:00
Quentin Gliech
f46f55a05b Upgrade rustls and update mas-http client bits 2024-07-05 10:07:40 +02:00
Quentin Gliech
16b953cfe4 Upgrade most HTTP/Hyper crates and make mas-listener work 2024-07-05 10:07:40 +02:00
reivilibre
f7366feb1f Improve errors when MAS contacts the Synapse homeserver (#2794)
* Add some drive-by docstrings

* Change text rendering of catch_http_codes::HttpError

Using `#[source]` is unnatural here because it makes it look like
two distinct errors (one being a cause of the other),
when in reality it is just one error, with 2 parts.

Using `Display` formatting for that leads to a more natural error.

* Add constraints to `catch_http_code{,s}` methods

Not strictly required, but does two things:

- documents what kind of function is expected
- provides a small extra amount of type enforcement at the call site,
  rather than later on when you find the result doesn't implement Service

* Add a `catch_http_errors` shorthand

Nothing major, just a quality of life improvement so you don't have to
repetitively write out what a HTTP error is

* Unexpected error page: remove leading whitespace from preformatted 'details' section

The extra whitespace was probably unintentional and makes the error harder to read,
particularly when it wraps onto a new line unnecessarily

* Capture and log Matrix errors received from Synapse

* Drive-by clippy fix: use clamp instead of min().max()

* Convert `err(Display)` to `err(Debug)` for `anyhow::Error`s in matrix-synapse support module
2024-06-07 11:14:04 +00:00
Quentin Gliech
fe737e497b Move tokio to a workspace dependency 2024-05-15 14:54:34 +02:00
dependabot[bot]
d76570cdfd build(deps): bump tokio from 1.36.0 to 1.37.0
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.36.0 to 1.37.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.36.0...tokio-1.37.0)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-30 18:11:14 +02:00
dependabot[bot]
5d4d5f7722 build(deps): bump bytes from 1.5.0 to 1.6.0
Bumps [bytes](https://github.com/tokio-rs/bytes) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/tokio-rs/bytes/releases)
- [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/bytes/compare/v1.5.0...v1.6.0)

---
updated-dependencies:
- dependency-name: bytes
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-05 09:48:10 +02:00
Quentin Gliech
7f845d1601 Use OTEL semantic conventions constants for most attributes 2024-03-19 17:15:14 +01:00
Quentin Gliech
7dd59c962c Moved some dependencies in the workspace and upgrade some dependencies 2024-03-19 14:54:35 +01:00
Quentin Gliech
4706d387a0 Use rustls-platform-verifier for cert validation
This simplifies by removing the mutually exclusive `native-roots` and
`webpki-roots` features with something that is suitable for all
platforms.
2024-03-06 14:03:59 +01:00
Quentin Gliech
bafb5e4956 Bump Clippy to 1.75 and Rust to 1.76 2024-02-27 16:58:43 +01:00
Quentin Gliech
306c99d49d Bump most Rust dependencies 2024-02-02 15:37:05 +01:00
Quentin Gliech
add2aae7de Fix the native-certs (and therefore docker) build 2024-02-02 14:39:24 +01:00
Quentin Gliech
b49eadf418 Upgrade rustls 2024-02-02 11:45:20 +01:00
Quentin Gliech
0f6572b7e5 Bump Rust dependencies and update cargo-deny exceptions 2024-02-02 11:45:20 +01:00
Quentin Gliech
6d5d346d7a mas-http: enable the tower/util feature 2023-12-07 17:10:57 +01:00
Quentin Gliech
bae0848090 Set crates descriptions for crates we publish 2023-12-07 17:10:57 +01:00
Quentin Gliech
dc66b5b18f Prepare workspace to publish OIDC crates 2023-12-07 16:02:55 +01:00
Quentin Gliech
a7ff6b00aa Enable clippy lints on a workspace level
This enables a lot more lints than before in some crates, so this fixed a lot of warnings as well.
2023-12-05 17:20:42 +01:00
Quentin Gliech
90a6b64c88 Bump Rust dependencies 2023-11-24 13:04:37 +01:00
dependabot[bot]
f68892f25c build(deps): bump tokio from 1.33.0 to 1.34.0
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.33.0 to 1.34.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.33.0...tokio-1.34.0)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-14 13:51:15 +01:00
Quentin Gliech
a1a96e0e6e Upgrade opentelemetry to 0.21.0 2023-11-08 11:49:03 +01:00
dependabot[bot]
5f7faba2ac build(deps): bump the opentelemetry group with 8 updates
Bumps the opentelemetry group with 8 updates:

| Package | From | To |
| --- | --- | --- |
| [tracing-opentelemetry](https://github.com/tokio-rs/tracing-opentelemetry) | `0.21.0` | `0.22.0` |
| [opentelemetry-http](https://github.com/open-telemetry/opentelemetry-rust) | `0.9.0` | `0.10.0` |
| [opentelemetry-jaeger](https://github.com/open-telemetry/opentelemetry-rust) | `0.19.0` | `0.20.0` |
| [opentelemetry-otlp](https://github.com/open-telemetry/opentelemetry-rust) | `0.13.0` | `0.14.0` |
| [opentelemetry-prometheus](https://github.com/open-telemetry/opentelemetry-rust) | `0.13.0` | `0.14.0` |
| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-rust) | `0.12.0` | `0.13.0` |
| [opentelemetry-stdout](https://github.com/open-telemetry/opentelemetry-rust) | `0.1.0` | `0.2.0` |
| [opentelemetry-zipkin](https://github.com/open-telemetry/opentelemetry-rust) | `0.18.0` | `0.19.0` |


Updates `tracing-opentelemetry` from 0.21.0 to 0.22.0
- [Release notes](https://github.com/tokio-rs/tracing-opentelemetry/releases)
- [Changelog](https://github.com/tokio-rs/tracing-opentelemetry/blob/v0.1.x/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/tracing-opentelemetry/compare/v0.21.0...v0.22.0)

Updates `opentelemetry-http` from 0.9.0 to 0.10.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases)
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/v0.9.0...v0.10.0)

Updates `opentelemetry-jaeger` from 0.19.0 to 0.20.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases)
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/v0.19.0...v0.20.0)

Updates `opentelemetry-otlp` from 0.13.0 to 0.14.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases)
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/v0.13.0...v0.14.0)

Updates `opentelemetry-prometheus` from 0.13.0 to 0.14.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases)
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/v0.13.0...v0.14.0)

Updates `opentelemetry-semantic-conventions` from 0.12.0 to 0.13.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases)
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/v0.12.0...v0.13.0)

Updates `opentelemetry-stdout` from 0.1.0 to 0.2.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-rust/blob/v0.2.0/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/commits/v0.2.0)

Updates `opentelemetry-zipkin` from 0.18.0 to 0.19.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases)
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/v0.18.0...v0.19.0)

---
updated-dependencies:
- dependency-name: tracing-opentelemetry
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: opentelemetry
- dependency-name: opentelemetry-http
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: opentelemetry
- dependency-name: opentelemetry-jaeger
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: opentelemetry
- dependency-name: opentelemetry-otlp
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: opentelemetry
- dependency-name: opentelemetry-prometheus
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: opentelemetry
- dependency-name: opentelemetry-semantic-conventions
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: opentelemetry
- dependency-name: opentelemetry-stdout
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: opentelemetry
- dependency-name: opentelemetry-zipkin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: opentelemetry
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-08 11:49:03 +01:00
dependabot[bot]
672aeff96c build(deps): bump rustls from 0.21.7 to 0.21.8
Bumps [rustls](https://github.com/rustls/rustls) from 0.21.7 to 0.21.8.
- [Release notes](https://github.com/rustls/rustls/releases)
- [Commits](https://github.com/rustls/rustls/compare/v/0.21.7...v/0.21.8)

---
updated-dependencies:
- dependency-name: rustls
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-03 16:14:44 +01:00
dependabot[bot]
f2a2ceeafc build(deps): bump tokio from 1.32.0 to 1.33.0
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.32.0 to 1.33.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.32.0...tokio-1.33.0)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 16:11:09 +02:00
Quentin Gliech
921f491a00 Rust dependencies housekeeping
Including:
 - package upgrades
 - stop using the patched version of `ulid`
 - update cargo deny duplicate exception list
2023-09-14 23:43:00 +02:00
Quentin Gliech
44fe2afafc Make the HTTP client factory reuse the underlying client
This avoids duplicating clients, and makes it so that they all share the same connection pool.
2023-09-14 16:52:01 +02:00