471 Commits

Author SHA1 Message Date
Quentin Gliech
fc4808436a Fix HTTP request tracing and make the DNS resolver traced again 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
03838bd909 Remove contacts from the data model 2024-09-20 20:39:04 +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
678753c2e1 storage: freeze the error type on BoxRepository
This avoids having to deal with traits bounds everywhere. It also moves
the `boxed()` method to the PgRepository, because it was unnecessary to
keep it on the `Repository` trait
2024-07-26 11:36:55 +02:00
Quentin Gliech
57b3aad1b1 storage: add a filter by last active time on app sessions 2024-07-19 13:40:27 +02:00
Quentin Gliech
9a2aa61dc5 storage: add a filter by last active time on OAuth 2.0 sessions 2024-07-19 13:40:27 +02:00
Quentin Gliech
92509ed453 storage: add a filter by last active time on compatibility sessions 2024-07-19 13:40:27 +02:00
Quentin Gliech
04c85ad9bc storage: add a filter by last active time on browser sessions 2024-07-19 13:40:27 +02:00
Quentin Gliech
d4c31b094b Add new filters on the OAuth and compat sessions 2024-07-16 18:23:23 +02:00
Quentin Gliech
51865c8519 Batch finish browser sessions 2024-07-16 14:13:11 +02:00
Quentin Gliech
9afef472a2 Batch finish OAuth 2.0 sessions 2024-07-16 14:13:11 +02:00
Quentin Gliech
6536d6eef9 Batch finish compatibility sessions 2024-07-16 14:13:11 +02:00
Quentin Gliech
98d66c1356 Add a way to reactivate users on the homeserver 2024-07-16 13:20:28 +02:00
Quentin Gliech
c7963c3af5 Add a lock during syncs of user devices 2024-07-16 09:32:07 +02:00
Quentin Gliech
52b260fdcf Deprecate the ProvisionDeviceJob and DeleteDeviceJob jobs 2024-07-16 09:32:07 +02:00
Quentin Gliech
f5e189304e Fully sync the devices with the homeserver 2024-07-16 09:32:07 +02:00
Quentin Gliech
b597292d6f storage: methods to list and count users with filters and pagination 2024-07-05 13:44:14 +02:00
Quentin Gliech
df89f570ac Actually send emails for recovery 2024-06-28 15:59:21 +02:00
Quentin Gliech
6e58404c4e Job to generate codes for all emails in a recovery session 2024-06-28 15:59:21 +02:00
Quentin Gliech
9ac4ee7baf storage: Add an email filter on the user email list 2024-06-28 15:59:21 +02:00
Quentin Gliech
751d2e5dc2 Data model and repository for the user recovery flow 2024-06-28 15:59:21 +02:00
Quentin Gliech
f82ad8c0e6 Soft-delete upstream OAuth 2.0 providers on config sync 2024-04-03 09:51:22 +02:00
Quentin Gliech
6841bc112d Add a soft-deletion column on upstream OAuth 2.0 providers 2024-04-03 09:51:22 +02:00
Quentin Gliech
771b6a2f8b Upgrade OTEL and remove support for Jaeger and Zipkin exporters 2024-03-18 17:26:40 +01:00
Quentin Gliech
1627fc6945 Upgrade chrono and replace deprecated methods usage 2024-03-18 17:26:40 +01:00
Quentin Gliech
6b3b1e8109 Additional parameters from upstream OAuth2 providers in the data model 2024-03-01 14:36:37 +01:00
Quentin Gliech
a7dc41fdba Parse User Agents on the backend side (#2388)
* Parse user agents on the server side

* Parse and expose user agents on the backend

* Use the parsed user agent in the device consent page

* Fix the device icon tests

* Fix clippy warnings

* Box stuff to avoid large enum variants

* Ignore a clippy warning

* Fix the requester boxing
2024-02-23 16:47:48 +01:00
Quentin Gliech
82cb1365fd Record user agents on OAuth 2.0 and compat sessions (#2386)
* Record user agents on OAuth 2.0 and compat sessions

* Add tests for recording user agent in sessions
2024-02-22 10:01:32 +01:00
Quentin Gliech
d3c799b3ae Save which user session created a compat session
This also exposes the user session in the GraphQL API, and allow
filtering on browser session ID on the app session list.
2024-02-21 11:55:58 +01:00
Quentin Gliech
ed75c715f5 Remove the unique constraint on device IDs on compatibility sessions
In OAuth 2.0 sessions, we can have multiple sessions for the same device
anyway, so this constraint doesn't exactly make sense.

Fixes #2033
Fixes #2312
2024-02-20 15:50:20 +01:00
Quentin Gliech
afc7f509d9 Make the user agree to T&C during registration 2024-02-07 17:21:22 +01:00
Quentin Gliech
d760211989 Setup a repository to track user terms agreements 2024-02-07 17:21:22 +01:00
Quentin Gliech
17abb9a67e Record the user agent and IP in the device code grant 2024-02-02 18:01:51 +01:00
Quentin Gliech
25feae3bf5 Run generated files updates, fix doc links & fmt 2024-02-02 18:01:51 +01:00
Quentin Gliech
45b7a6a931 Add a repository for device code grants 2024-02-02 18:01:51 +01:00
Quentin Gliech
306c99d49d Bump most Rust dependencies 2024-02-02 15:37:05 +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
Quentin Gliech
b7f509532e Add upstream OAuth 2.0 providers name and branding 2023-11-20 17:23:02 +01:00
Quentin Gliech
6942fc4570 Allow endpoints and discovery mode override for upstream oauth2 providers
This time, at the configuration and database level
2023-11-17 16:18:39 +01:00
dependabot[bot]
470bfa175e build(deps): bump the apalis group with 2 updates
Bumps the apalis group with 2 updates: apalis-core and apalis-cron.


Updates `apalis-core` from 0.4.5 to 0.4.6

Updates `apalis-cron` from 0.4.5 to 0.4.6

---
updated-dependencies:
- dependency-name: apalis-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: apalis
- dependency-name: apalis-cron
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: apalis
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-14 14:30:52 +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
Quentin Gliech
b32d4db6d0 bump other rust dependencies 2023-10-20 00:22:40 +02:00
dependabot[bot]
b3c1ccf4de build(deps): bump async-trait from 0.1.73 to 0.1.74
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.73 to 0.1.74.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.73...0.1.74)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-19 17:41:02 +02:00
Quentin Gliech
92d2a18afb "Can request admin" flag on user 2023-10-09 18:52:30 +02:00
Quentin Gliech
90aaf395d8 graphql: allow filtering appsessions on device_id 2023-10-06 16:05:26 +02:00