Skip to content

hydra

v26.2.0
ory/hydra

Internet-scale OpenID Certified™ OpenID Connect and OAuth2.1 provider that integrates with your user management through headless APIs. Solve OIDC/OAuth2 user cases over night. Consume as a service on Ory Network or self-host. Trusted by OpenAI and many others for scale and security. Written in Go.

Version of ory/hydra you run

CompareView on GitHub

Breaking changes

What to check before upgrading, taken from the notes of the last 30 releases.

  • v2.3.0Jan 17, 2025

    Breaking Changes

    Going forward, OAuth2 Clients requesting an OpenID Connect flow must include the redirect_uri parameter or the request will be rejected.

    Deleting consents no longer returns 404 in certain edge cases but instead always 204.

    Bug Fixes

    • Advertise support for response_mode=form_post in OIDC discovery document (#3861) (9cc5f28)
    • Broken JSON round-tripping for custom claims (b36b701):

    Adding custom claims with numerical types (think JavaScript Number) previously did not

    round-trip through Hydra correctly. For example, passing UNIX timestamps in custom claims

    would end up as floating points in exponential notation in the final token. That, in turn,

    confused or broke downstream consumers of the token, including Kratos.

    Ref https://github.com/go-jose/go-jose/issues/144

    • Change comment on revokeOAuth2LoginSessions (#3853) (6d829dd)
    • Change index name in down migration (#3911) (3a09db2)
    • Correct span names (554238b)
    • Correctly pass multiple token audiences and prompt parameters when performing the authorization code flow from the CLI (#3736) (632faef)
    • Cpu contention when reading JWKs and suppress generating duplicate JWKs (#3870) (d5f65c5):

    Previously each concurrent caller would need to lock a shared mutex when reading or writing a given JWK set.

    The read path now doesn't require locking a mutex at all and instead returns valid query results directly.

    The write path is now protected by a concurrency control mechanism (using x/sync/singleflight) to ensure only one JWK set is generated and persisted.

    Note: Duplicate JWK sets may still be improperly generated if running more than one Hydra instance in a high traffic environment.

    Resolves performance issues on some databases when deleting consent.

    • Do not retry sending responses (#3764) (1bbfdb5)
    • docs: Adjust note about SDK support on oauth2 flow endpoints (#3812) (d0e047c)
  • v2.0.0Oct 27, 2022

    Breaking Changes

    SDK naming has changed for the following operations:

    ory.
    -   V0alpha2Api.AdminDeleteOAuth2Token(context.Background()).
    +   OAuth2Api.DeleteOAuth2Token(context.Background()).
        ClientId("foobar").Execute()
    
    ory.
    -   V0alpha2Api.RevokeOAuth2Token(
    +   OAuth2Api.RevokeOAuth2Token(
            context.WithValue(context.Background(), sdk.ContextBasicAuth, sdk.BasicAuth{
                UserName: clientID,
                Password: clientSecret,
            })).Token(token).Execute()
    
    ory.
    -   V0alpha2Api.AdminIntrospectOAuth2Token(context.Background()).
    +   OAuth2Api.IntrospectOAuth2Token(context.Background()).
        Token(token).
        Scope("foo bar")).Execute()
    

    SDK naming has changed for the following operations:

    ory.
    -   V0alpha2Api.DiscoverJsonWebKeys(context.Background()).
    +   WellknownApi.DiscoverJsonWebKeys(context.Background()).
    
  • v1.11.0Jan 21, 2022

    Breaking Changes

    To celebrate this change, we cleaned up the ways you install Ory software. There is now one central brew / bash curl repository:

    -brew install ory/hydra/hydra
    +brew install ory/tap/hydra
    
    -bash <(curl https://raw.githubusercontent.com/ory/kratos/master/install.sh)
    +bash <(curl https://raw.githubusercontent.com/ory/meta/master/install.sh) hydra
    

    Endpoint PUT /clients now returns a 404 error when the OAuth2 Client to be updated does not exist. It returned 401 previously. This change requires you to run SQL migrations!

    Co-authored-by: fjviera

    Please notice that this change requires SQL migrations to be applied! As always, please make a backup before applying them!

    Co-authored-by: aeneasr <3372410+aeneasr@users.noreply.github.com>

    Co-authored-by: Jagoba Gascón

    Co-authored-by: Gajewski Dmitriy

    Bug Fixes

    This fix addresses an issue where configuration values in arrays could not be loaded from environment variables, which is now possible. For more information on how Ory Hydra parses configuration, head over to the documentation!

    Additionally, this PR resolves a build issue on FreeBSD - making it now possible to compile Ory Hydra with the FreeBSD target.

    Lastly, this change adds OpenTelemetry support!

  • v1.10.2May 4, 2021
    • This maintenance release resolves regressions introduced in Ory Hydra v1.10.1. A big change is that Ory Hydra now supports PATCH operations for OAuth2 Clients and is able to handle TLS for admin and public endpoints individually. The breaking changes included in this release address two bugs which are marked as a BREAKING CHANGE. We believe however that these changes do not affect running systems and given the major improvements introduced by the fixes, we decided to mark this as a patch release.

    BREAKING CHANGES

    • This patch makes it so that already handled consent/login/logout requests respond with 410 Gone instead of 409 Conflict. Additionally, a URL is included that the user should be redirected to!

    Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com>

    • This patch changes how issuer and public URLs are used. Please be aware that going forward, the public URL is used for redirects. Previously, the issuer URL was used. If no public URL is set, the issuer URL will be used as before.

Release history

All releases on GitHub
BadgeLatest version of ory/hydra[![version](/badge/ory/hydra)](/p/ory/hydra)

v26.2.0

Bug Fixes

  • Always retry curl invocations to surmount transient third-party failures (c28a6c8):
  • Broken older down migrations (8ed407d):
  • Context passing and limit response size (f33d6a8):
  • Context passing in jsonnetsecure (5884774):
  • Correctly detect when to use self-signed certificates (6f9af27):
  • Correctly scan SQL NULL into go JSON types (163c579):
  • Data race in hydra-oss test (262f85b):
  • deps: Update dependency prettier to v3.7.4 (106865d):
  • Do not cache pairwise subject algorithm (a341867):
  • Down migrations in newer MySQL versions (5b0360d):
  • Flaky tests on hydra-oss tests (ce58946):
  • Incorrect default value for page_tokens (f1290da):
  • Incorrect usage of database/sql (a8142d0):
  • Properly validate policy URI on client creation (44347e7):
  • Remove flaky test for unused function (e8c8803):
  • Remove WithDumpMigrations option to MigrationBox (6fd8a64):
  • Transactions managed by fosite were not working (3ad64db):
  • Update packages to fix GHSA-7h2j-956f-4vf2 (ae75488):
  • Upgrade vulnerable dependencies across Go and npm (f28904c):

Co-authored-by: Deepak Prabhakara

  • X data race and parallize some tests (d37af61):

Code Generation

  • Prepare for OSS release - v26.2.0 (0b84568):

Code Refactoring

  • Squash merge old backoffice migration and fix up command (9d96bbd):

Documentation

Features

  • Add ratelimit buckets to swagger definitions (1819465):
  • Add support for NULL and more column types to keysetpagination (6a041ef):
  • Automatic transaction retries for postgres (a008e91):
  • Collect external latency data and write to logs (46846e9):
  • Consider Go migrations DirHash when restoring full schema from backups (5306aaf):
  • Forward (some) user request headers to SMS HTTP channel (640eb0b):
  • Generate events for SSO and SCIM provider revisions (47a9384):
  • Make SCIM work with MySQL (10ec9bf):
  • Move search sidecar to its own docker image (8bd331c):
  • Optionally do not store skipped consents (cf77ed6):
  • Rename project revision columns (af69132):
  • Use keysetpagination planner for keto read queries (5ca4c85):

Reverts

Tests

  • Deflake and improve performance (cdf972e):
  • Deflake directory watcherx (ea02ce9):
  • Faster and more reliable courier tests (a43d8f8):
  • hydra: Add plaintext backups for all DB types (822ea26):
  • Minor setup improvements (e65fba7):

Changelog

Full release notesCompare with previous