Commit Graph

41 Commits

Author SHA1 Message Date
Quentin Gliech 88de377b42 Rename ShutdownManager to LifecycleManager 2025-01-28 14:29:33 +01:00
Quentin Gliech f2221d309e Report version from git describe in metrics & CLI 2024-12-12 17:59:35 +01:00
Quentin Gliech 773c4d656d Move all the OTEL meters to crate-level statics 2024-12-12 16:04:48 +01:00
Quentin Gliech 14948c35cb Replace all the manual HTTP clients with reqwest 2024-10-28 13:46:38 +01:00
Quentin Gliech 685b27d594 Use CancellationToken and a TaskTracker to handle graceful shutdowns 2024-10-10 10:49:41 +02:00
Quentin Gliech ed4b6c42a7 Remove (C) 2024-09-10 14:28:55 +02:00
Quentin Gliech f6bb100c0a License headers change 2024-09-05 13:25:42 +02:00
reivilibre fbc360d1a9 Backend work to support minimum password complexity (#2965)
* config: Add minimum password complexity option

* PasswordManager: add function for checking if complexity is sufficient

* Enforce password complexity on registration, change and recovery

* cli: Use exit code 1 for weak passwords

This seems preferable to exit code 0, but ideally we should choose one
and document it.

* Expose minimum password complexity score over GraphQL
2024-07-11 10:17:39 +01:00
Quentin Gliech 798ca90241 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 1cf283337b Load the configuration from a common Figment instance
This should avoid loading the same files multiple times.
It should also make it easier to do post-processing on the
configuration, like validation.

This does deprecate one undocumented feature: the ability to override
some fields during the configuration generation using environment
variables.
2024-03-22 13:33:09 +01:00
Quentin Gliech 6eb6209bd8 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 c0a9d27e34 Automatically sync the configuration on server startup 2024-03-01 18:14:05 +01:00
Quentin Gliech a0f5f3c642 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 5ab0e880ff Upgrade opentelemetry to 0.21.0 2023-11-08 11:49:03 +01:00
Quentin Gliech f20c8d8ef3 Infer client IP address from the peer address and the X-Forwarded-Proxy header 2023-09-20 20:24:30 +02:00
Quentin Gliech 21964cbeab Setup cargo-deny
Also try to remove a bunch of duplicate crates
2023-08-14 11:22:52 +02:00
Quentin Gliech 699dfba55f OpenTelemetry upgrade 2023-08-11 16:12:58 +02:00
Quentin Gliech e79da4a949 Bump Rust dependencies and remove unused ones 2023-07-27 17:23:08 +02:00
Quentin Gliech c9e9130cdf Sentry transport based on hyper to get rid of reqwest 2023-04-18 23:01:43 +02:00
Quentin Gliech 09270b2493 Better tracing attributes in the HTTP client 2023-04-18 14:45:43 +02:00
Quentin Gliech f4fff72b22 Properly propagate trace contexts
This also fixes a long-running issue where the OTEL context was not properly set in the tracing spans.
2023-04-14 10:22:22 +02:00
Quentin Gliech 87914cbcb3 Capture better errors in Sentry 2023-01-31 16:25:15 +01:00
Quentin Gliech 875025467e Log more errors and setup Sentry integration 2023-01-30 18:04:44 +01:00
Quentin Gliech 533cabe005 Use the new password manager 2022-12-14 16:04:36 +01:00
Quentin Gliech a86798d2b3 Switch to camino's Utf8Path* instead of std::path::Path* 2022-11-18 19:02:26 +01:00
Quentin Gliech c548417752 Refactor listeners building 2022-10-17 11:39:45 +02:00
Quentin Gliech f5e3aa0404 Migrate to clap v4 2022-09-29 14:33:40 +02:00
Quentin Gliech 3901829ccd Prometheus exporter & other stuff 2022-09-28 11:13:53 +02:00
Quentin Gliech 7dd84a6584 WIP: bump OTEL 2022-09-28 11:13:53 +02:00
Quentin Gliech c1ed726dc8 Enable the clippy::str_to_string lint 2022-08-08 10:06:20 +02:00
Quentin Gliech c3ddc088ab Reorganise CLI crate 2022-02-01 18:49:55 +01:00
Quentin Gliech a45381828c Loads of docs & enabling more clippy lints 2022-02-01 12:02:32 +01:00
Quentin Gliech c7a243a3a1 Minor logging improvements
- only have colors if the output terminal is a tty
 - log in a non-blocking fashion
2022-01-26 17:21:54 +01:00
Quentin Gliech 95bde28ebe Soft-fail if .env fails to load 2021-12-14 16:27:18 +01:00
Quentin Gliech 7341f0dccf Better error context on startup 2021-12-14 11:52:19 +01:00
Quentin Gliech 617ab83ab2 Upgrade all dependencies 2021-10-18 17:45:45 +02:00
Quentin Gliech f9036aecd4 Make telemetry configurable
Also allows opting-out of the OTLP exporter to remove the dependency to
protoc when building.
2021-10-13 16:48:16 +02:00
Quentin Gliech 27ae6a5167 Initial OpenTelemetry tracing support 2021-10-13 13:56:42 +02:00
Quentin Gliech 3159a9972f Allow loading multiple configuration files 2021-09-17 12:22:03 +02:00
Quentin Gliech 76c69485e9 Embed templates in binary & add command to export them 2021-09-16 23:39:07 +02:00
Quentin Gliech a44e33931c Split the service in multiple crates 2021-09-16 14:43:56 +02:00