Commit Graph
433 Commits
Author SHA1 Message Date
Quentin Gliech c13b0478e6 Initial GraphQL API 2022-11-09 19:17:12 +01:00
Quentin Gliech b7c50b5403 Pass time and RNG in CSRF verification methods 2022-11-02 18:59:00 +01:00
Quentin Gliech f0d95a7613 Stop using Utc::now in templates samples 2022-11-02 18:59:00 +01:00
Quentin Gliech f1aa42fae4 Disallow Ulid generation without explicit timestamp and rng 2022-11-02 18:59:00 +01:00
Quentin Gliech 559181c2c3 Pass the rng and clock around 2022-11-02 18:59:00 +01:00
Quentin Gliech e2142f9cd4 Database refactoring 2022-11-02 18:59:00 +01:00
Quentin Gliech ee43f08cf7 Rewrite the listeners crate
Now with a way better graceful shutdown! With proper handshakes!
2022-10-17 11:39:45 +02:00
Quentin Gliech 485778beb3 Inject connection informations in the request extension 2022-10-17 11:39:45 +02:00
Quentin Gliech f687ae4ac4 HAProxy's Proxy Protocol acceptor 2022-10-17 11:39:45 +02:00
Quentin Gliech c548417752 Refactor listeners building 2022-10-17 11:39:45 +02:00
Quentin Gliech 014a8366ed Export Prometheus metrics on regular listeners 2022-10-17 11:39:45 +02:00
Quentin Gliech 84ac87f551 WIP: better listeners
- listen on UNIX domain sockets
- handle TLS stuff
- allow mounting only some resources
2022-10-17 11:39:45 +02:00
Quentin Gliech 7fbfb74a5e WIP: better HTTP listeners 2022-10-17 11:39:45 +02:00
Quentin Gliech 93ce5c797c Mount the static assets on /assets 2022-10-17 11:39:45 +02:00
Quentin Gliech eeae943208 Drop the config schema generation subcommand & include it in the docs 2022-10-17 10:43:07 +02:00
Quentin Gliech f5e3aa0404 Migrate to clap v4 2022-09-29 14:33:40 +02:00
Quentin Gliech 9e3b3567b2 Gate the prometheus exporter behind a feature
Also fixes the Docker image building and the CI builds
2022-09-28 11:13:53 +02:00
Quentin Gliech 56fdb64a84 HTTP metrics & other stuff 2022-09-28 11:13:53 +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 7b819ffa8b Simplify the HTTP client building
Also supports loading the WebPKI roots instead of the native ones for
TLS
2022-09-27 19:05:25 +02:00
Quentin Gliech fa47f6e150 Upgrade axum to 0.6.0-rc.1 2022-09-06 13:11:54 +02:00
Quentin Gliech cc6c6e8bdb Remove the config dependency from the email, templates & handlers crates 2022-09-02 16:01:11 +02:00
Quentin Gliech d7c9ca4796 Add a debug CLI command to check the compiled policies 2022-08-22 16:36:31 +02:00
Quentin Gliech 398379e21b Better Tower layers 2022-08-19 10:51:24 +02:00
Quentin Gliech c1ed726dc8 Enable the clippy::str_to_string lint 2022-08-08 10:06:20 +02:00
Quentin GliechandHugh Nimmo-Smith ba6a382f2c Authorization grant policy (#288)
Co-authored-by: Hugh Nimmo-Smith <hughns@matrix.org>
2022-07-21 16:18:59 +00:00
Quentin Gliech eb22c33a7d Remove the login policy (since it is not implemented yet) 2022-06-03 13:37:20 +02:00
Quentin Gliech 071055ad18 Embed the default policy in the binary 2022-06-03 13:37:20 +02:00
Quentin Gliech aab1f49374 Support for applying OPA policies during client registration 2022-06-03 13:37:20 +02:00
Quentin Gliech 1aff98bdb3 Working legacy login endpoint 2022-05-19 10:17:49 +02:00
Quentin Gliech 185562c866 Form error state overhaul
This adds a new FormState structure here to hold the state of an errored
from, including retaining field value and better error codes.

It also adds error recovery for the registration form, and properly
loads the post_login_action context in case of errors.
2022-05-12 13:35:58 +02:00
Quentin Gliech f4353b660e Have a unified URL builder/router 2022-05-10 09:52:48 +02:00
Quentin Gliech 8a256596d7 Serve static files live from disk in dev mode 2022-04-28 16:08:50 +02:00
Quentin Gliech a3f1a880aa Remove some unnecessary dependencies 2022-04-08 09:10:33 +02:00
Quentin Gliech bc24e30867 Add CORS headers to API-like routes 2022-04-07 16:25:42 +02:00
Quentin Gliech b43817e66c Attach remote and local address to HTTP server/client spans 2022-04-07 11:52:43 +02:00
Quentin Gliech 4e31fc6c84 Get rid of warp 2022-04-06 17:35:29 +02:00
Quentin Gliech 9b5ecd5bc4 Make the ServerLayer work properly with axum 2022-04-06 17:35:29 +02:00
Quentin Gliech 7c8f8722cd Axum migration: signed cookies, errors, CSRF tokens, sessions 2022-04-06 17:35:29 +02:00
Quentin Gliech 797257cce7 Start migrating to Axum
Now with the homepage and the static files
2022-04-06 17:35:29 +02:00
Quentin Gliech 785101564a Load multiple config files specified in the MAS_CONFIG env variable 2022-03-14 17:46:18 +01:00
Quentin Gliech c9f16ae781 Load the config file from a environment variable 2022-03-11 17:03:28 +01:00
Quentin Gliech 62f633a716 Move clients to the database 2022-03-08 19:07:46 +01:00
Quentin Gliech b81f4caace Better OpenTelemetry tracer 2022-02-24 16:03:37 +01:00
Quentin Gliech c5858e6ed5 Many improvements to the mas-http crate
- make `mas_http::client` implement Service directly instead of being
   an async function
 - a Get layer that makes a Service<Uri>
 - better error sources in the JSON layer
 - make the client have a proper error type
2022-02-15 08:28:25 +01:00
Quentin Gliech 497a3e006e Implement a JSON tower layer
This will help requesting JSON APIs
2022-02-11 14:15:31 +01:00
Quentin Gliech 8c36e51176 Proper HTTP client 2022-02-10 16:38:17 +01:00
Quentin Gliech 2df40762a2 Dedicated HTTP server/client crate
Also have better names for the HTTP routes
2022-02-10 16:38:16 +01:00
Quentin Gliech 26a340d5dc Bump dependencies 2022-02-04 10:18:01 +01:00