chore(deps): update oryd/hydra docker tag to v25 #275
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v1.11.10→v25.4.0Release Notes
ory/hydra (oryd/hydra)
v25.4.0Compare Source
v25.4.0 brings first-class support for agentic authorization with the Device Authorization Grant (RFC 8628) and OAuth 2.1 discovery endpoint, making it easier for agents, IoT devices, and headless clients to obtain and manage access securely. Combined with new consent-chain revocation and migration fixes for CockroachDB v25+, Hydra v25.4 strengthens its role as the web and AI scale-ready OAuth 2.1 and OpenID Connect server for modern applications.
Ory has moved to a new versioning scheme. Read about our new version scheme. Interested in self-hosting Ory with support, SLAs, and advanced features? Check out our offerings.
Highlights
Agentic authentication use cases
This release makes Ory Hydra a stronger foundation for agentic authentication, where autonomous agents or constrained devices need to obtain and manage access without a full browser or direct human interaction. Two key updates enable this:
Together, these features address longstanding issues for agentic use cases by combining standards compliance with Hydra’s production-grade session and consent handling.
Device authorization grant (RFC 8628)
Adds full device flow support for devices without a browser or with limited input (smart TVs, consoles, agents).
Revoke token chains by consent challenge ID
New capability to revoke the entire token chain (refresh token and all derived access tokens) produced by a specific consent session.
OAuth 2.1 discovery endpoint
Hydra now serves
/.well-known/oauth-authorization-serverin addition to/.well-known/openid-configurationto aid OAuth 2.1 and certain integrations (per RFC 8414).Improvements
json_web_keys_uriis set (andjson_web_keyspresent).Fixes
uuid_generate_v4()instead of MD5-based generation (enable theuuid-osspextension if not already).user_codescrubbing in device flow.tos_urivalidation corrected.Security and dependencies
ThalesGroup/crypto11,circl) addressing advisories.Upgrade notes
uuid-osspis enabled (CREATE EXTENSION IF NOT EXISTS "uuid-ossp";) to support native UUIDs.Auto-generated release notes
Bug Fixes
Add repo syncing for polis (46d17f8):
Add virtual expiry column to flow for easy cross-db querying (1c402e3):
Allow updating when JWKS URI is set (#3935) (#3946) (fb1655b):
The client validator no longer rejects PATCH and PUT updates when
JSONWebKeysURIis non-empty andJSONWebKeysis not nil.Always use EC private keys in tests (7481827):
Better tracing in proxy HTTP (0d8a797):
Case-insensitive user_code scrubbing (#3979) (d389fd0)
changelog-oel: Cap grace period for refresh token rotation at 30d (35d5d58):
changelog-oel: Reduce rows read when checking past consents (ace80c2):
changelog-oel: Replace
returning *with defined column names (0b26e27):changelog-oel: Update expires_at on token use (0588744):
changelog-oel: Use keyset pagination instead of offset (cbf14c0):
CLI usage help examples (#3943) (e24f9a7)
Copybara script (7b33358):
Correct multiple instances of 'stragegy' typo (#3906) (50eefbc):
This commit addresses several occurrences where 'strategy' was
misspelled as 'stragegy' throughout the codebase.
Additionally, a similar issue was found and corrected in the Ory
documentation repository (ory/docs), with a corresponding pull request
submitted.
Deduplicate down migrations (02baf36):
deps: Update go-x (582a3c5):
Escape IPv6 regex string (0ba326a):
Failing CI in OSS repos (c900985):
Fix expires_at timestamp not in UTC leading to local test failures (337000a):
Fixed typo in description of api (4551eb6):
Force autocommit for device auth code migration (#3991) (29761f4), closes #1234 #1234:
Force SQL operator precedence in pagination v2 to ensure nid isolation (43c9be1):
Hydra CI (dde63d8):
Hydra tracing (38ee050):
hydra: Instrument metrics also on public endpoints (8aee364):
hydra: Use prometheus metrics instead of SQA metrics (7a6592e):
Identity queries (a30f021):
Ignore flaky keys in Hydra HSM tests (469b2ad):
Ignore non SQL files when applying migrations (38a28d4):
Implicit transactions for cockroach v23.5 and simplified migration logic (fbc982a):
Include go.mod in vendored oryx (08a3ab4):
Increase refresh token grace period (50608c2):
infrastructure: Hydra oss CI (e846541):
Jsonx.ApplyJSONPatch (c6fa2a6):
JWT documentation link to point to the correct resource (#3907) (b746e41):
The previous link in the documentation led to a page unrelated to JWT.
Updated the URL to https://www.ory.sh/docs/oauth2-oidc/jwt-access-token,
which provides proper JWT guidance.
Migration problems (fe459ea):
Migrations on CockroachDB v25+ (#3994) (38efece), closes #3964 #3993:
I've added some output to the generated migrations files to make them
easier to recreate, hence the big diff.
These are important:
Otlp sampling rate default (cbd5094):
Print correct content of down migrations (4a4a088):
Regression in UsedTimes calculation (b432e46):
Reject invalid migration names (eb3b6ac):
Remove strict decoding on consent and login endpoints (fb7dc75):
Return 404 on schema file not exists (76079c0):
Revert "fix: otlp sampling rate default (#9055)" (02e86bc):
Revoke by consent request ID (#3947) (5d8635c), closes #3932 #3932 #3941
Routes in AX with identity_schema (5014348):
Simplify and fix Copybara sync job (f998d09):
Tos_uri validation (#3945) (007e224):
Contributes to ory-corp/cloud#7395
Towards fixing fosite CI (061d3fb):
Update debian version in httpd test image (f6720c4):
Upgrade to go 1.24.4 to fix CVE-2025-4673 (c14e538):
Use batch insert to speed up project changes (692e41c):
Use git hash to render ory x schema references (0a6ea5b):
Use hard-coded fallback key instead of panic (e1f6450):
Use main branch for polis (6c24e68):
Using uuid_generate_v4 function (#3958) (c206066):
Removing the md5 function for the uuid generation with native pgsql
function https://www.postgresql.org/docs/current/uuid-ossp.html
Closes #3844
Code Generation
Code Refactoring
Features
Add allowed domains configuration for captcha (df3f05c):
Add error reason to OAuth2TokenExchangeError event (#3971) (241dd45)
Add handler for /.well-known/oauth-authorization-server. (#3980) (5baca28):
In order to support OAuth2.1 and some specific integrations that
leverage the
/.well-known/oauth-authorization-serverendpoint, this PRadds a handler for the specific endpoint. The
/.well-known/openid-configurationendpoint already supports allconfiguration items that conform to this endpoint as seen here:
https://datatracker.ietf.org/doc/html/rfc8414
Autoconfigure kratos-changefeed (d92dabe):
Bump CRDB, establish foreign key, (52c0432):
changelog-oel: Add
hydra debug challengecommand (a94662f):changelog-oel: Add expiry and TTL to
authentication_sessiontable (d9ea549):changelog-oel: Choose identity schema in self-service registration and login flows (a398b64):
changelog-oel: Improved tracing and metrics for the high-performance SQL connection pool (17a4c4f):
changelog-oel: Reduce hydra CPU and memory consumption (018709e):
changelog: Graceful refresh count limit (470713d):
changelog: Migrate http router to stdlib router (a147e3b):
Custom page token column extraction (756708e):
Domain telemetry improvements (abd5f04):
Expose Ory-Error-Id HTTP header (8ff62f8):
Full user-code configuration (b6ac894):
hydra: Configurable JWK cache (994ea18):
hydra: Split up persister (bea6b4d):
Implement RFC 8628 (#3912) (5215d24), closes #3851 #3252 #3230 #2416:
This patch introduces the OAuth 2.0 Device Authorization Grant to Ory
Hydra. The OAuth 2.0 device authorization grant is designed for
Internet-connected devices that either lack a browser to perform a
user-agent-based authorization or are input constrained to the extent
that requiring the user to input text in order to authenticate during
the authorization flow is impractical. It enables OAuth clients on such
devices (like smart TVs, media consoles, digital picture frames, and
printers) to obtain user authorization to access protected resources by
using a user agent on a separate device.
The OAuth 2.0 Device Authorization Grant may also become relevant for AI
Agent authentication flows and is generally an amazing step and
innovation for this project.
A very special thanks goes to @nsklikas from
Canonical, @supercairos from
shadow.tech and @BuzzBumbleBee.
For more details, please check out the documentation
(ory/docs#2026)
To implement this feature, you will need to implement two additional
screens in your login and consent application. A reference
implementation can be found
here.
Improve domain telemetry for OSS (Hydra & Kratos) (02c5757):
Improve oauth2 event data (#3975) (6da0fd3)
Improve openapi spec (#3908) (4053c9e), closes #1234 #1234:
Improved events and identity recent activity (a8449c8):
List clients by ID (f8a53b0):
Monorepo (3ff992e):
Monorepo (a77b206):
Move config testhelpers to ory/x (3a4ba08):
Revoke Kratos session asynchronously (#3936) (a0e7ee2):
This change makes the session revocation in Kratos async to improve
observed latency.
Revoke token chain by consent challenge ID (#3932) (4a40193):
This change adds the ability to revoke token chains by "consent
challenge ID".
"Consent sessions"
Token revocation
Revocation by consent challenge ID
Use stdlib HTTP router in Kratos (8f81931):
Use vendored jackson (a0a9062):
Use vendored ory/x (6581e01):
Performance Improvements
Add index to optimize jwt query (72fa16d):
Index hint for CRDB consents query (919b73f):
Tests
Add golangci-lint config and GHA (1209de7):
Ensure current encoded flows stay valid (f4301e6):
hydra: Add snapshots for login & consent requests (687cfae):
hydra: Clean oauth2 session setup (699e382):
hydra: Clean up some helpers (7840b0e):
hydra: Convert custom JWT claim tests to table (8391d1b):
hydra: New and better e2e go tests (aefe5e2):
hydra: Refactor consent handler tests (4d61925):
Parallelize and improve (#3989) (a47e395)
Resturcture and improve integration tests (2769a75):
Split up consent manager test (42b6a79):
Unclassified
Merge branch 'fosite-monorepo' (2c3ba13):
Merge
3834fabinto4dae0f4(dc84053):Changelog
1ec40ddchore(deps): bump github.com/go-jose/go-jose/v3 from 3.0.3 to 3.0.4 in the go_modules group (#3952)35d6393chore(deps): bump golang.org/x/net from 0.33.0 to 0.36.0 in the go_modules group across 1 directory (#3961)36f21d0chore(deps): update actions/setup-node action to v6edb9ba8chore(deps): update dependency node to v241449affchore(deps): update hadolint/hadolint-action action to v3.3.0ea8f607chore(deps): update hydra6ac3c31chore(deps): update hydra workflowsad05646chore(deps): update oss workflowsfbae239chore(hydra): clean up command setup29ba474chore(hydra): improve test config setupadd73e4chore(hydra): minor internal improvementsdd97ec8chore(hydra): registry setup refactoringae2dda1chore(hydra): removeCreateConsentRequest6ba796bchore(hydra): remove unnecessary registry functionality7f02e54chore(kratos): cleanup and improve some tests0e7f000chore: add migration tests in kratos non-oss for crdbdcd696dchore: add pagination secrets for Kratosceacf86chore: add pre-release workflows for ossb688b9bchore: additional pop optionsafc5adechore: axios updatee55a1fachore: bump Go everywherecc92feachore: bump dependencies and move tools (#3968)241f513chore: bump deps1ca1020chore: bump go depscd2f9e5chore: bump go to 1.24.68d0537achore: bump pop to masterf5b1e6bchore: bump sec deps6445cd1chore: cleanup oss workflows35a6403chore: dedicated state transition helpercdfb025chore: explicitly skip errnorows errors in token rotation4999d20chore: fix all hydra linter issues1c3dbb0chore: fix build for kratos-ossaf36516chore: fix down migrations for device flow (#3988)a5854b1chore: fix vulnerable dependencies50739a1chore: force replacements where expected7c47137chore: gh actions and node lib updates1a110c9chore: go mod tidy to unblock CI6884b97chore: improve migration testdata and assertions20d419bchore: merge ory/x repof6427dachore: more gh actions and npm lib updatesa6bec8fchore: move flowctx to flowba6c18achore: npm security updates4b09dfdchore: reduce complexity of invalidating logincb0f1dechore: reduce use of external-facing AcceptOAuth2ConsentRequestc309185chore: refactored fosite interfaces0692df7chore: remove CreateLoginRequest*d0ec7e3chore: remove counting courier messagesba0cb06chore: remove db tags from fields that are not supposed to be stored3c33a64chore: remove device challenge ID from API9a226afchore: remove internal fields from device challenge8e3a7b8chore: remove non-existing key from OpenAPI specbbac4a4chore: remove redundant internal state800f3fechore: remove sdk generation action63e28b0chore: remove superfluous flow fields and states1c6dc2achore: remove two more db field tagsc463c64chore: remove unused random verifier fields82ea6a2chore: replace ThalesIgnite/crypto11 with ThalesGroup/crypto11 (#3966)9a683dechore: replace deprecated usagesc6f6ae4chore: run oss cypress tests on custom runners2d28980chore: shared serve configd170459chore: simplify CreateDeviceUserAuthRequest5745f7dchore: simplify GetDeviceUserAuthRequest83e2251chore: simplify HandleLoginRequest1c8ba50chore: simplify VerifyAndInvalidateDeviceUserAuthRequest550274achore: simplify consent challenge decodingbb675f4chore: simplify consent matching logica64f8fachore: simplify consent verifier invalidation6abc899chore: simplify login challenge decoding442c5d0chore: simplify login verifier invalidation5a76849chore: simplify service and option loading172b36bchore: split up consent manager9a80353chore: template migration command helpa88bf39chore: update Hydra dependencies0be582achore: update OSS readme66c66abchore: update actions-cache to v4 (#3948)bbeee84chore: update copybara rules49e0815chore: update copybara transformation7a92fb2chore: update fosite to latest master commit573ce56chore: update gha in oss05968cdchore: update github actions5170fe7chore: update github actionsab35ad4chore: update opencontainers/runc to v1.3.34de96efchore: update repository templates to ory/meta@bc603a6605649echore: update repository templates to ory/meta@d919e6f12b62b6chore: update repository templates to ory/meta@fc1b4d629cbfe6chore: updated circl to resolve GHSA-2x5j-vhc8-9cwm6b496e2chore: upgrade crdb to v25.2 everywhere & deflake CI!4103f1bchore: use TLS termination validation middleware from ory/x (#3984)96aec6fchore: use dedicated ory fork of pop63e6176chore: use un-deprecated WithStack and cmp.Or7f1b922ci: renew certificates and increase validity days470713dfeat(changelog): graceful refresh count limita147e3bfeat(changelog): migrate http router to stdlib routera94662ffeat(changelog-oel): addhydra debug challengecommandd9ea549feat(changelog-oel): add expiry and TTL toauthentication_sessiontablea398b64feat(changelog-oel): choose identity schema in self-service registration and login flows17a4c4ffeat(changelog-oel): improved tracing and metrics for the high-performance SQL connection pool018709efeat(changelog-oel): reduce hydra CPU and memory consumption994ea18feat(hydra): configurable JWK cachebea6b4dfeat(hydra): split up persisterdf3f05cfeat: add allowed domains configuration for captcha241dd45feat: add error reason to OAuth2TokenExchangeError event (#3971)5baca28feat: add handler for /.well-known/oauth-authorization-server. (#3980)d92dabefeat: autoconfigure kratos-changefeed52c0432feat: bump CRDB, establish foreign key,756708efeat: custom page token column extractionabd5f04feat: domain telemetry improvements8ff62f8feat: expose Ory-Error-Id HTTP headerb6ac894feat: full user-code configuration5215d24feat: implement RFC 8628 (#3912)02c5757feat: improve domain telemetry for OSS (Hydra & Kratos)6da0fd3feat: improve oauth2 event data (#3975)4053c9efeat: improve openapi spec (#3908)a8449c8feat: improved events and identity recent activityf8a53b0feat: list clients by ID3ff992efeat: monorepoa77b206feat: monorepo3a4ba08feat: move config testhelpers to ory/xa0e7ee2feat: revoke Kratos session asynchronously (#3936)4a40193feat: revoke token chain by consent challenge ID (#3932)8f81931feat: use stdlib HTTP router in Kratosa0a9062feat: use vendored jackson6581e01feat: use vendored ory/x35d5d58fix(changelog-oel): cap grace period for refresh token rotation at 30dace80c2fix(changelog-oel): reduce rows read when checking past consents0b26e27fix(changelog-oel): replacereturning *with defined column names0588744fix(changelog-oel): update expires_at on token usecbf14c0fix(changelog-oel): use keyset pagination instead of offset582a3c5fix(deps): update go-x8aee364fix(hydra): instrument metrics also on public endpoints7a6592efix(hydra): use prometheus metrics instead of SQA metricse846541fix(infrastructure): hydra oss CIe24f9a7fix: CLI usage help examples (#3943)50eefbcfix: Correct multiple instances of 'stragegy' typo (#3906)b746e41fix: JWT documentation link to point to the correct resource (#3907)46d17f8fix: add repo syncing for polis1c402e3fix: add virtual expiry column to flow for easy cross-db queryingfb1655bfix: allow updating when JWKS URI is set (#3935) (#3946)7481827fix: always use EC private keys in tests0d8a797fix: better tracing in proxy HTTPd389fd0fix: case-insensitive user_code scrubbing (#3979)7b33358fix: copybara script02baf36fix: deduplicate down migrations0ba326afix: escape IPv6 regex stringc900985fix: failing CI in OSS repos337000afix: fix expires_at timestamp not in UTC leading to local test failures4551eb6fix: fixed typo in description of api43c9be1fix: force SQL operator precedence in pagination v2 to ensure nid isolation29761f4fix: force autocommit for device auth code migration (#3991)dde63d8fix: hydra CI38ee050fix: hydra tracinga30f021fix: identity queries469b2adfix: ignore flaky keys in Hydra HSM tests38a28d4fix: ignore non SQL files when applying migrationsfbc982afix: implicit transactions for cockroach v23.5 and simplified migration logic08a3ab4fix: include go.mod in vendored oryx50608c2fix: increase refresh token grace periodc6fa2a6fix: jsonx.ApplyJSONPatchfe459eafix: migration problems38efecefix: migrations on CockroachDB v25+ (#3994)cbd5094fix: otlp sampling rate default4a4a088fix: print correct content of down migrationsb432e46fix: regression in UsedTimes calculationeb3b6acfix: reject invalid migration namesfb7dc75fix: remove strict decoding on consent and login endpoints76079c0fix: return 404 on schema file not exists02e86bcfix: revert "fix: otlp sampling rate default (#9055)"5d8635cfix: revoke by consent request ID (#3947)5014348fix: routes in AX with identity_schemaf998d09fix: simplify and fix Copybara sync job007e224fix: tos_uri validation (#3945)061d3fbfix: towards fixing fosite CIf6720c4fix: update debian version in httpd test imagec14e538fix: upgrade to go 1.24.4 to fix CVE-2025-4673692e41cfix: use batch insert to speed up project changes0a6ea5bfix: use git hash to render ory x schema referencese1f6450fix: use hard-coded fallback key instead of panic6c24e68fix: use main branch for polisc206066fix: using uuid_generate_v4 function (#3958)72fa16dperf: add index to optimize jwt query919b73fperf: index hint for CRDB consents query7e49133refactor: move database meta functions to root x folder for reusability687cfaetest(hydra): add snapshots for login & consent requests699e382test(hydra): clean oauth2 session setup7840b0etest(hydra): clean up some helpers8391d1btest(hydra): convert custom JWT claim tests to tableaefe5e2test(hydra): new and better e2e go tests4d61925test(hydra): refactor consent handler tests1209de7test: add golangci-lint config and GHAf4301e6](https://redirect.github.com/ory/hydra/commit/fConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.