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.
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.
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.
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.
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.
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.
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.
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, …).
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
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.