Commit Graph
7419 Commits
Author SHA1 Message Date
Quentin Gliech b68a317b04 Backport #5849: Update crossbeam-epoch to 0.9.20 to fix RUSTSEC-2026-0204 (#5856) 2026-07-09 11:51:39 +02:00
Quentin Gliech e3568cd024 Update crossbeam-epoch to 0.9.20 to fix RUSTSEC-2026-0204 2026-07-09 11:44:17 +02:00
Quentin Gliech 9543d66ae9 CI: Move from styrainc/setup-regal to open-policy-agent/setup-regal (#5762) 2026-07-01 15:58:21 +02:00
Quentin Gliech 822d4f5c40 CI: Move from styrainc/setup-regal to open-policy-agent/setup-regal 2026-07-01 14:41:09 +02:00
github-actions[bot] e575a8ce87 1.20.0-rc.0 v1.20.0-rc.0 2026-06-30 15:12:40 +00:00
matrixbot 37fbb42829 Translations updates for main (#5759) 2026-06-30 16:30:36 +02:00
github-actions[bot] 21b7f829b7 Translations updates 2026-06-30 14:01:02 +00:00
Quentin Gliech 1db1fc12d0 Update anyhow from 1.0.102 to 1.0.103 (#5756) 2026-06-29 17:53:08 +02:00
Quentin Gliech 806ae21231 Update anyhow from 1.0.102 to 1.0.103
Fixes RUSTSEC-2026-0190
2026-06-29 17:24:45 +02:00
Quentin Gliech 5d489f71e9 Infer an initial name for the device for the device auth grant (#5750) 2026-06-25 18:34:46 +02:00
Quentin Gliech a51e222d49 Track and log database statistics for every request and job (#5745) 2026-06-25 18:26:09 +02:00
Quentin Gliech b76f08cf86 deps: upgrade sea-query to 1.0, switch sea-query-binder -> sea-query-sqlx (#5744) 2026-06-25 16:45:37 +02:00
matrixbot 6e56e8a4e1 Translations updates for main (#5751) 2026-06-24 14:02:39 +02:00
github-actions[bot] 49e9a4a22a Translations updates 2026-06-24 11:33:02 +00:00
Quentin Gliech dd0575be76 Decouple ULID generations from its own rand dependency (#5747) 2026-06-23 11:55:45 +02:00
Quentin Gliech 1283932c35 Infer a device name for the device authorization grant
Mirror the authorization code grant: render a human-readable device name
from the client and the polling device's user-agent, using the locale
captured on the grant, and provision it on the homeserver instead of
sending no display name.
2026-06-23 10:26:08 +02:00
Quentin Gliech 401b1e299b Persist the browser locale on the device code grant
Capture the preferred language from the browser view which accepts the
device code grant and store it on the grant, so it can later be used to
render a human-readable device name.
2026-06-23 10:26:07 +02:00
Quentin Gliech b3354c1532 Upgrade ulid 2026-06-22 14:46:55 +02:00
Quentin Gliech e8c0a3b446 Force using the extension trait for building ULIDs
This adds a Clippy config to disallow a few builtin methods from the ULID crate
to prefer our extension trait instead.
2026-06-22 14:46:55 +02:00
Quentin Gliech 6491ded8c1 Migrate all the ULID generations to use the extension trait 2026-06-22 14:46:55 +02:00
Quentin Gliech 6b390a3d5d Introduce an extension trait to generate ULIDs with our own datetime and randomness
This adds a new trait to help generate ULIDs with `chrono::DateTime` and the
workspace-level `rand` crate. This is to help decouple `rand` and `ulid`
upgrades from  each other.
2026-06-22 14:46:55 +02:00
Quentin Gliech e913ddbc9e docs: explain the new database statistics in log lines 2026-06-22 14:43:05 +02:00
Quentin Gliech d84fd87517 mas-storage-pg: record SQL and DB stats at the executor layer
Swaps ExecuteExt to return a Traced<Q> wrapper whose fetch_*/execute
methods run the query through the RecordingExecutor, replacing the old
blanket impl that only recorded db.query.text. Adds the per-query-type
Traced<T> impls and the supporting test.
2026-06-22 14:43:05 +02:00
Quentin Gliech a0897ac71a mas-storage-pg: add a recording SQL executor and stream
Introduces a RecordingExecutor (an sqlx Executor wrapper) and the
RecordingStream it returns, which record the SQL as db.query.text and
accumulate per-context query count/timing.
2026-06-22 14:43:05 +02:00
Quentin Gliech 44c834bc45 mas-context: track cumulative DB query count and time on LogContext
Add db_queries / db_time / db_rows_fetched / db_rows_affected counters to
LogContext, mirroring Synapse's LoggingContext db_txn_count / db_txn_duration_sec.

They are exposed through LogContextStats and its Display, so they appear
automatically in the existing HTTP request-completion and job-completion log
lines.
2026-06-22 14:43:05 +02:00
Quentin Gliech b714fdf870 deps: upgrade sea-query to 1.0, switch sea-query-binder -> sea-query-sqlx
Prepares for the sqlx 0.9 upgrade: sea-query-binder is pinned to sqlx 0.8,
and its sqlx-0.9 successor is the renamed sea-query-sqlx crate which requires
sea-query 1.0. This change does the sea-query 0.32 -> 1.0 major migration while
staying on sqlx 0.8 (via sea-query-sqlx 0.8.1), to keep it decoupled from the
sqlx bump itself.
2026-06-19 10:40:12 +02:00
Quentin Gliech be9c6e64a1 Document the request log line (#5741) 2026-06-18 17:03:48 +02:00
Quentin Gliech f328d2f62f Rephrase slightly the request log documentation 2026-06-18 16:36:05 +02:00
Quentin Gliech 99e7b5834e Record and log the requester on the request log line (#5735) 2026-06-18 14:17:36 +02:00
Quentin Gliech 23d0385fa3 Fix ESS test CI job by pinning the setup-ess-cluster-action to the latest version (#5743) 2026-06-18 14:00:15 +02:00
Quentin Gliech 393b42ed6e docs: document the request log line
Add a reference page describing the `http.server.response` log line and its
fields (method, status, requester, client address, GraphQL operation, request
id, trace id, …), aimed at administrators feeding the logs into a SIEM, with a
table of well-known operations and how to classify them (login, logout, token
issuance, …).
2026-06-18 13:43:59 +02:00
Quentin Gliech fc798b2831 mas-axum-utils: move the RecordAsRequester doc comment onto its method
Addresses review feedback on #5735: the doc describing
`maybe_record_as_requester` belonged on the method, not the trait.
2026-06-18 13:43:59 +02:00
Quentin Gliech e42d85d14e Merge branch 'main' into the requester logging branch 2026-06-18 13:43:59 +02:00
Quentin Gliech 4b4fb86fb8 build(deps): bump actions/github-script from 8.0.0 to 9.0.0 (#5622) 2026-06-18 13:37:38 +02:00
Quentin Gliech e4157b4b02 Log the GraphQL operation type and name (#5736) 2026-06-18 13:34:55 +02:00
Quentin Gliech a0612f4bde ci: pin setup-ess-cluster-action to the latest release/v2 commit
The ESS job was failing because the action's internal `azure/setup-helm` was
unpinned and had drifted to Helm v4 Fixed upstream by pinning Helm to 3.19.4
inside the action
2026-06-18 13:33:02 +02:00
Quentin Gliech cf30f77f75 deps: upgrade reqwest 0.13, sentry 0.48, opentelemetry 0.32 (#5742) 2026-06-18 12:39:41 +02:00
dependabot[bot] e56dccdd68 build(deps): bump actions/github-script from 8.0.0 to 9.0.0
Bumps [actions/github-script](https://github.com/actions/github-script) from 8.0.0 to 9.0.0.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/ed597411d8f924073f98dfc5c65a23a2325f34cd...3a2844b7e9c422d3c10d287c895573f7108da1b3)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-17 17:28:52 +00:00
Quentin Gliech e0c03b06e8 deps: upgrade reqwest 0.13, sentry 0.48, opentelemetry 0.32
We need to group the sentry and opentelemetry bumps together because they both
upgraded reqwest to 0.13.

- reqwest 0.12 -> 0.13: rename the rustls feature to rustls-no-provider,
  add the now-opt-in 'form' feature.
- sentry 0.46 -> 0.48: add rustls-no-provider so Sentry's reqwest 0.13
  transport reuses our process-wide aws-lc-rs provider.
- opentelemetry 0.31 -> 0.32 / tracing-opentelemetry 0.33: update the
  get_otel_context call in mas-context for the new signature.

opentelemetry-jaeger-propagator 0.32 is deprecated upstream but still
published; we keep it for now (with an expect(deprecated)) and will
vendor it in-tree once it's actually removed.
2026-06-17 19:00:25 +02:00
Quentin Gliech 269c1d9caf Merge branch 'main' into the requester logging branch 2026-06-17 17:57:16 +02:00
Quentin Gliech 9133820368 Merge branch 'main' into the GraphQL logging branch 2026-06-17 17:57:16 +02:00
Quentin Gliech a2533cd3f3 Track and log the client IP address (#5734) 2026-06-17 17:45:06 +02:00
Quentin Gliech fe622331a8 Admin API: allow listing and viewing of OAuth 2.0 clients (#5710) 2026-06-17 17:44:34 +02:00
Quentin Gliech 63ed796441 Use the public registry hostname in release notes (#5725) 2026-06-17 17:42:43 +02:00
Quentin Gliech 78036a933d Fix the compat session API definition in the admin API spec (#5714) 2026-06-17 17:42:31 +02:00
Quentin Gliech 2ea88c6377 Document what user data is stored and how long it is kept (#5673) 2026-06-17 17:42:17 +02:00
Quentin Gliech 256c5e3ff5 storage: use an enum for the OAuth2ClientFilter client kind 2026-06-17 17:33:03 +02:00
Quentin Gliech d33577cf4d Admin API: filter users based on client usage (#5707) 2026-06-17 17:12:56 +02:00
Quentin Gliech 61cffe2124 Admin API: allow filtering of sessions by creation and last-activity time (#5709) 2026-06-17 17:12:01 +02:00
Quentin Gliech 9464ca8038 Merge branch 'main' into quenting/admin-api/session-time-filters 2026-06-17 17:01:02 +02:00