Software Versions
The Ory ecosystem consists of multiple services versioned using semantic versioning. This section explains how we define service versions and what they mean.
Development Stages
important
Ory only releases software that is stable and ready for production!
The sandbox/incubating stage is an indicator of how much the API could change in the future, including backwards incompatible
changes.
Ory was founded in 2015, secures more than 50B requests monthly and is the most trusted open source ecosystem for authentication & authorization.
There are three main stages of development for services:
- Graduated: Mature implementations of proven concepts. They rarely change in backwards incompatible ways. A software is
considered graduated if the major version is >= 1, for example
v1.0.1
,v2.2.2
. Backwards incompatible changes are indicated by a bump of the major version number. Most, if not all, REST APIs will provide backwards compatible transformations that make it possible to interact with the server using older API versions. - Incubating: Implements well defined but not fully matured concepts. Incubating software has a major version number of
0
, for examplev0.10.0
. You may see a pre-release version such asv0.10.0-beta.1
. Incubating software has a higher (but overall moderate) probability for larger changes that can break backwards compatibility, for which there are upgrade guides. - Sandbox: Implements concepts, APIs and CLIs at the experimental stage and may change in unpredictable ways. Sandbox software
has a major version number of
0
with aalpha
orbeta
pre-release indicator, for examplev0.10.0-alpha.1
. It's more likely that you'll encounter a version tag with aalpha
pre-release version. We will provide upgrade guides wherever possible, when they're used in production already.
The following is a list of maturity level per project:
- Ory Hydra is a graduated project.
- Ory Oathkeeper is a incubating project.
- Ory Kratos is a sandbox project.
- Ory Keto is a sandbox project.
Changelog
March 2020 Change
As of March 2020, the oryOS
semantics have been deprecated and will no longer be used.
The oryOS
versioning was introduced as a way to declare compatibility between the different projects. This was necessary as
parts of Ory Hydra were split into new projects called Ory Keto and Ory Oathkeeper.
As of today however, these projects are largely independent. Future versions of these projects will also include versioned APIs
which renders the oryOS
semantics unnecessary.
If compatibility is an issue, it will be highlighted in the project's documentation.
The next sections document the previous behavior and are kept for historical reasons.
Old documentation links with oryOS.<x>
in the URL are going to keep working in the foreseeable future.
oryOS Semantics
To make deployment easier but stay compatible with semantic versioning, each service is equipped with a oryOS
version number
denoted by +oryOS.X
where X
represents the "ecosystem" version. This is useful if you use more than one service from the Ory
ecosystem. Let's look at some examples:
- Ory Hydra
v1.0.1+oryOS.6
is best compatible with Ory Oathkeeperv0.13.1+oryOS.6
and Ory Ketov0.5.1+oryOS.6
. - Ory Hydra
v1.0.2+oryOS.7
is best compatible with Ory Oathkeeperv0.13.2+oryOS.7
and Ory Ketov0.6.0+oryOS.7
. - Ory Hydra
v1.0.3+oryOS.8
is probably not fully compatible with Ory Oathkeeperv0.13.1+oryOS.6
nor with Ory Ketov0.5.1+oryOS.6
. - Ory Hydra
v1.1.0+oryOS.9
is best compatible with Ory Oathkeeperv1.1.0+oryOS.9
and Ory Ketov1.1.0+oryOS.9
.
It's possible that a number of releases are versioned with the same oryOS.x
version metadata:
- Ory Hydra
v1.0.1+oryOS.10
,v1.0.2+oryOS.10
is guaranteed compatible with Ory Oathkeeperv0.15.5+oryOS.10
,v1.16.0+oryOS.10
and Ory Ketov0.1.1+oryOS.10
,v0.1.2+oryOS.10
.
We always provide ways to migrate breaking changes, and all breaking changes are meticulously described in each project's
UPGRADE.md
as well as HISTORY.md
.
Compatibility
This compatibility matrix shows which versions are compatible with one another.
oryOS | Documentation | Ory Hydra | Ory Keto | Ory Oathkeeper | Ory Kratos |
---|---|---|---|---|---|
oryOS.18 | oryOS.18 | v1.4.2 , v1.4.1 , v1.4.0 | v0.5.3-alpha.1 , v0.5.2-alpha.1 , v0.5.1-alpha.1 , v0.5.0-alpha.1 | v0.37.1-beta.1 , v0.37.0-beta.1 | |
oryOS.17 | oryOS.17 | v1.3.2 , v1.3.1 , v1.3.0 | v0.4.4-alpha.1 , v0.4.5-alpha.1 | v0.36.0-beta.4 , v0.36.0-beta.3 , v0.36.0-beta.2 , v0.36.0-beta.1 | v0.1.1-alpha.1 |
oryOS.16 | oryOS.16 | v1.2.3 | v0.4.3-alpha.2 | v0.35.5-beta.2 | v0.1.0-alpha.1 , v0.1.0-alpha.6 , v0.1.0-alpha.5 , v0.1.0-alpha.4 , v0.1.0-alpha.3 , v0.1.0-alpha.2 |
oryOS.15 | oryOS.15 | v1.2.1 , v1.2.0 , v1.2.0-alpha.3 , v1.2.0-alpha.2 , v1.2.0-alpha.1 , v1.2.2 | v0.4.2-alpha.1 , v0.4.0-sandbox , v0.4.0-alpha.1 , v0.4.3-alpha.1 | v0.35.1-beta.1 , v0.35.0-alpha.1 , v0.35.5-beta.1 , v0.35.4-beta.1 | v0.0.3-alpha.10 , v0.0.3-alpha.9 , v0.0.3-alpha.7 , v0.0.3-alpha.5 , v0.0.3-alpha.4 , v0.0.3-alpha.3 , v0.0.3-alpha.2 , v0.0.3-alpha.1 , v0.0.1-alpha.11 , v0.0.1-alpha.9 , v0.0.2-alpha.1 , v0.0.1-alpha.8 , v0.0.1-alpha.6 , v0.0.1-alpha.5 , v0.0.1-alpha.3 , v0.0.1-alpha.2 , v0.0.1-alpha.1 |
oryOS.14 | oryOS.14 | v1.1.1 | v0.3.10-sandbox , v0.3.9-sandbox , v0.3.8-sandbox | v0.34.0-beta.1 | |
oryOS.13 | oryOS.13 | v1.1.0 | v0.3.8-sandbox , v0.3.7-sandbox | v0.33.1-beta.1 , v0.33.0-beta.1 | |
oryOS.12 | oryOS.12 | v1.0.0-rc.14 , v1.0.0-rc.15 , v1.0.0 , v1.0.0-rc.16 , v1.0.3 , v1.0.2 , v1.0.1 , v1.0.8 , v1.0.7 , v1.0.6 , v1.0.5 , v1.0.4 , v1.0.9 | v0.3.3-sandbox , v0.3.6-sandbox , v0.3.5-sandbox | v0.16.0-beta.3 , v0.16.0-beta.4 , v0.16.0-beta.5 , v0.19.0-beta.1 , v0.18.0-beta.1 , v0.17.4-beta.1 , v0.17.3-beta.1 , v0.17.2-beta.1 , v0.17.1-beta.1 , v0.17.0-beta.1 , v0.19.3-beta.1 , v0.32.0-beta.1 , v0.31.0-beta.1 , v0.32.1-beta.1 | |
oryOS.11 | oryOS.11 | v1.0.0-rc.10 , v1.0.0-rc.11 , v1.0.0-rc.12 | v0.3.0-sandbox , v0.3.1-sandbox | v0.15.0 , v0.15.1 , v0.15.2 | |
oryOS.10 | oryOS.10 | v1.0.0-rc.5 , v1.0.0-rc.6 , v1.0.0-rc.7 , v1.0.0-rc.8 , v1.0.0-rc.9 | v0.2.2-sandbox , v0.2.3-sandbox , v0.2.1-sandbox , v0.2.0-sandbox | v0.14.2 , v0.14.1 , v0.14.0 | |
oryOS.9 | oryOS.9 | v1.0.0-beta.9 , v1.0.0-rc.2 , v1.0.0-rc.3 , v1.0.0-rc.4 | v0.1.9-sandbox | v0.13.9 | |
oryOS.8 | oryOS.8 | v1.0.0-beta.8 | v0.1.8-sandbox | v0.13.8 | |
oryOS.7 | oryOS.7 | v1.0.0-beta.7 | v0.1.7-sandbox | v0.13.7 | |
oryOS.6 | oryOS.6 | v1.0.0-beta.6 | v0.1.6-sandbox | v0.13.6 | |
oryOS.5 | oryOS.5 | v1.0.0-beta.5 | v0.1.5-sandbox | v0.13.5 | |
oryOS.4 | oryOS.4 | v1.0.0-beta.4 | v0.1.4-sandbox | v0.13.4 | |
oryOS.3 | oryOS.3 | v1.0.0-beta.3 | v0.1.3-sandbox | v0.13.3 | |
oryOS.2 | oryOS.2 | v1.0.0-beta.2 | v0.1.2-sandbox | v0.13.2 | |
oryOS.1 | oryOS.1 | v1.0.0-beta.1 | v0.1.1-sandbox | v0.13.1 |
Package repository limitations
Several package repositories such as Docker Hub, NPM, and others don't allow build metadata in the version tag.
Therefore, we generally strip the oryOS
metadata from the versions published on package repositories (for example NPM, Ruby
Gems, Packagist, Maven Central, Go ...).
January 2020 Change
As of January 2020 (oryOS.15) we will no longer use -sandbox
to indicate the sandbox stage. Instead, please check the
maturity section. We made this change because some package manager (for example Ruby Gems) don't allow the -sandbox
suffix in the version.
November 2018 Change
If you are an adopter of the Ory Keto or Ory Oathkeeper prior to November 2018, this section is for you.
Why
Before November 2018, Ory Keto and Ory Oathkeeper were available as versions v1.0.0-beta.1
through v1.0.0-beta.9
. We wanted to
make versioning as easy as possible across all services. For example, if you ran Ory Hydra v1.2.3
and Ory Oathkeeper v1.2.3
both versions would be guaranteed compatible.
This turned out to be a bad decision because of multiple factors:
- As Ory Hydra was moving towards
v1.0.0
, Ory Oathkeeper and Ory Keto were still rather new projects and some of them required breaking changes to improve the value of the technology. But semantic versioning, which is a de-facto standard, has strong implications on breaking changes in software labeled asv1.x.y
. While we had plans to add tags like-sandbox
to software, labeled asv1
but not fully matured, we quickly realized that this would only add to confusion. - While certain services matured rather quickly and the community was eagerly awaiting the next release, we had to hold back
because of unfinished changes to other projects. Ory Hydra
v1.0.0-rc.2
was put on delay because we wanted other systems to feelv1
-ish, which required a lot of work, stress and caused delays. This lead to a misalignment between what the community wants (Ory Hydra rc1) and what had to be added to the roadmap in order to comply with the versioning concept. - We're working towards an open source identity management system (Ory Hive) which will stay in sandbox and incubation for a
while due to its complexity. We didn't want to give the impression that MVPs are
v1
or evenv2
.
Our plan to help developers understand which versions are compatible with one another backfired and instead we delayed releases and developers were confused as to the maturity of the individual services.
Upgrading
The new versioning framework was published in November 2018 at the top of this page. This is an overview of the things that changed.
Ory Hydra
No changes to the versioning will be made. The next release will remain v1.0.0-rc.2+oryOS.9
.
Going forward, the npm package ory-hydra-sdk
will no longer be continued. Instead, new versions will be pushed to @oryd/hydra
.
Version v1.0.0-beta.9
will be the last available version at ory-hydra-sdk
. Version v1.0.0-rc.2+oryOS.9
will be the first
version available at @oryd/hydra
.
Version Matrix
Old version | Re-released as | NPM | Docker Hub |
---|---|---|---|
v1.0.0-beta.9 | - | ory-hydra-sdk:v1.0.0-beta.9 | oryd/hydra:v1.0.0-beta.9 |
- | v1.0.0-rc.2+oryOS.9 (example) | @oryd/hydra:v1.0.0-rc.2 | oryd/hydra:v1.0.0-rc.2_oryOS.9 |
Ory Oathkeeper
Ory Oathkeeper is a service in incubation phase. To comply with the new versioning framework, the following changes will be made:
- GitHub Releases
v1.0.0-beta.1
tov1.0.0-beta.9
have been removed as well as their binaries uploaded to GitHub Releases. Releasesv1.0.0-beta.1
tov1.0.0-beta.9
, including binaries, have been re-released asv0.13.1+oryOS.1
tov0.13.9+oryOS.9
. Binaries, code, and functionality for versionsv1.0.0-beta.2+oryOS.2
andv0.13.2+oryOS.2
are equal. - Git Tags will be removed on Jan 15th 2019. Until then, you will be able to check
out the specific commits using for example
git checkout v1.0.0-beta.2 -b my-branch
. Tagsv1.0.0-beta.1
tov1.0.0-beta.9
will be re-released asv0.13.1+oryOS.1
tov0.13.9+oryOS.2
. After Jan 15th 2019 you will be able to get the same functionality as before, but you have to change the tag fromv1.0.0-beta.x
tov0.13.x+oryOS.x
. - Versions
v1.0.0-beta.1
tov1.0.0-beta.9
will be removed from Docker Huboryd/oathkeeper
on Jan 15th 2019. These have been re-released according to the same rules that apply for Git Tags, but with_oryOS.x
instead of+oryOS.x
. Imageoryd/oathkeeper:v1.0.0-beta.2
will thus be available asoryd/oathkeeper:v0.13.2_oryOS.2
. - The npm package
ory-oathkeeper-sdk
will be deprecated. The new npm package will be available at@oryd/oathkeeper
. The new npm package will only serve versions under the new formatv0.13.x+oryOS.x
.
Version Matrix
Old version | Re-released as | NPM | Docker Hub |
---|---|---|---|
v1.0.0-beta.1 | v0.13.1+oryOS.1 | @oryd/oathkeeper:v0.13.1 , ory-oathkeeper-sdk:v1.0.0-beta.1 (deprecated!) | oryd/oathkeeper:v0.13.1_oryOS.1 , oryd/oathkeeper:v1.0.0-beta.1 (deleted Jan 15th 2019) |
v1.0.0-beta.2 | v0.13.2+oryOS.2 | @oryd/oathkeeper:v0.13.2 , ory-oathkeeper-sdk:v1.0.0-beta.2 (deprecated!) | oryd/oathkeeper:v0.13.2_oryOS.2 , oryd/oathkeeper:v1.0.0-beta.2 (deleted Jan 15th 2019) |
v1.0.0-beta.3 | v0.13.3+oryOS.3 | @oryd/oathkeeper:v0.13.3 , ory-oathkeeper-sdk:v1.0.0-beta.3 (deprecated!) | oryd/oathkeeper:v0.13.3_oryOS.3 , oryd/oathkeeper:v1.0.0-beta.3 (deleted Jan 15th 2019) |
v1.0.0-beta.4 | v0.13.4+oryOS.4 | @oryd/oathkeeper:v0.13.4 , ory-oathkeeper-sdk:v1.0.0-beta.4 (deprecated!) | oryd/oathkeeper:v0.13.4_oryOS.4 , oryd/oathkeeper:v1.0.0-beta.4 (deleted Jan 15th 2019) |
v1.0.0-beta.5 | v0.13.5+oryOS.5 | @oryd/oathkeeper:v0.13.5 , ory-oathkeeper-sdk:v1.0.0-beta.5 (deprecated!) | oryd/oathkeeper:v0.13.5_oryOS.5 , oryd/oathkeeper:v1.0.0-beta.5 (deleted Jan 15th 2019) |
v1.0.0-beta.6 | v0.13.6+oryOS.6 | @oryd/oathkeeper:v0.13.6 , ory-oathkeeper-sdk:v1.0.0-beta.6 (deprecated!) | oryd/oathkeeper:v0.13.6_oryOS.6 , oryd/oathkeeper:v1.0.0-beta.6 (deleted Jan 15th 2019) |
v1.0.0-beta.7 | v0.13.7+oryOS.7 | @oryd/oathkeeper:v0.13.7 , ory-oathkeeper-sdk:v1.0.0-beta.7 (deprecated!) | oryd/oathkeeper:v0.13.7_oryOS.7 , oryd/oathkeeper:v1.0.0-beta.7 (deleted Jan 15th 2019) |
v1.0.0-beta.8 | v0.13.8+oryOS.8 | @oryd/oathkeeper:v0.13.8 , ory-oathkeeper-sdk:v1.0.0-beta.8 (deprecated!) | oryd/oathkeeper:v0.13.8_oryOS.8 , oryd/oathkeeper:v1.0.0-beta.8 (deleted Jan 15th 2019) |
v1.0.0-beta.9 | v0.13.9+oryOS.9 | @oryd/oathkeeper:v0.13.9 , ory-oathkeeper-sdk:v1.0.0-beta.9 (deprecated!) | oryd/oathkeeper:v0.13.9_oryOS.9 , oryd/oathkeeper:v1.0.0-beta.9 (deleted Jan 15th 2019) |
- | v0.13.10+oryOS.10 (example) | @oryd/oathkeeper:v0.13.10 | oryd/oathkeeper:v0.13.10_oryOS.10 |
No code or database changes will be required when moving from
v1.0.0-beta.x
tov0.13.x+oryOS.x
Ory Keto
Ory Keto is a service in sandbox phase. To comply with the new versioning rules, the following changes will be made:
- GitHub Releases
v1.0.0-beta.1
tov1.0.0-beta.9
have been removed as well as their binaries uploaded to GitHub Releases. Releasesv1.0.0-beta.1
tov1.0.0-beta.9
, including binaries, have been re-released asv0.1.1-sandbox+oryOS.1
tov0.1.9-sandbox+oryOS.9
. Binaries, code, and functionality for versionsv1.0.0-beta.2
andv0.1.2-sandbox+oryOS.2
are equal. - Git Tags will be removed on Jan 15th 2019. Until then, you will be able to check out the
specific commits using for example
git checkout v1.0.0-beta.2 -b my-branch
. Tagsv1.0.0-beta.1
tov1.0.0-beta.9
will be re-released asv0.1.1-sandbox+oryOS.1
tov0.1.9-sandbox+oryOS.9
. After Jan 15th 2019 you will be able to get the same functionality as before, but you have to change the tag fromv1.0.0-beta.x
tov0.1.x-sandbox+oryOS.x
. - Versions
v1.0.0-beta.1
tov1.0.0-beta.9
will be removed from Docker Huboryd/keto
on Jan 15th 2019. These have been re-released according to the same rules that apply for Git Tags. Imageoryd/keto:v1.0.0-beta.2
will thus be available asoryd/keto:v0.1.2-sandbox_oryOS.2
. - The npm package
ory-keto-sdk
will be deprecated. The new npm package will be available at@oryd/keto
. The new npm package will only serve versions under the new formatv0.1.x-sandbox+oryOS.x
.
Version Matrix
Old version | Re-released as | NPM | Docker Hub |
---|---|---|---|
v1.0.0-beta.1 | v0.1.1-sandbox+oryOS.1 | @oryd/keto:v0.1.1-sandbox , ory-keto-sdk:v1.0.0-beta.1 (deprecated!) | oryd/keto:v0.1.1-sandbox_oryOS.1 , oryd/keto:v1.0.0-beta.1 (deleted Jan 15th 2019) |
v1.0.0-beta.2 | v0.1.2-sandbox+oryOS.2 | @oryd/keto:v0.1.2-sandbox , ory-keto-sdk:v1.0.0-beta.2 (deprecated!) | oryd/keto:v0.1.2-sandbox_oryOS.2 , oryd/keto:v1.0.0-beta.2 (deleted Jan 15th 2019) |
v1.0.0-beta.3 | v0.1.3-sandbox+oryOS.3 | @oryd/keto:v0.1.3-sandbox , ory-keto-sdk:v1.0.0-beta.3 (deprecated!) | oryd/keto:v0.1.3-sandbox_oryOS.3 , oryd/keto:v1.0.0-beta.3 (deleted Jan 15th 2019) |
v1.0.0-beta.4 | v0.1.4-sandbox+oryOS.4 | @oryd/keto:v0.1.4-sandbox , ory-keto-sdk:v1.0.0-beta.4 (deprecated!) | oryd/keto:v0.1.4-sandbox_oryOS.4 , oryd/keto:v1.0.0-beta.4 (deleted Jan 15th 2019) |
v1.0.0-beta.5 | v0.1.5-sandbox+oryOS.5 | @oryd/keto:v0.1.5-sandbox , ory-keto-sdk:v1.0.0-beta.5 (deprecated!) | oryd/keto:v0.1.5-sandbox_oryOS.5 , oryd/keto:v1.0.0-beta.5 (deleted Jan 15th 2019) |
v1.0.0-beta.6 | v0.1.6-sandbox+oryOS.6 | @oryd/keto:v0.1.6-sandbox , ory-keto-sdk:v1.0.0-beta.6 (deprecated!) | oryd/keto:v0.1.6-sandbox_oryOS.6 , oryd/keto:v1.0.0-beta.6 (deleted Jan 15th 2019) |
v1.0.0-beta.7 | v0.1.7-sandbox+oryOS.7 | @oryd/keto:v0.1.7-sandbox , ory-keto-sdk:v1.0.0-beta.7 (deprecated!) | oryd/keto:v0.1.7-sandbox_oryOS.7 , oryd/keto:v1.0.0-beta.7 (deleted Jan 15th 2019) |
v1.0.0-beta.8 | v0.1.8-sandbox+oryOS.8 | @oryd/keto:v0.1.8-sandbox , ory-keto-sdk:v1.0.0-beta.8 (deprecated!) | oryd/keto:v0.1.8-sandbox_oryOS.8 , oryd/keto:v1.0.0-beta.8 (deleted Jan 15th 2019) |
v1.0.0-beta.9 | v0.1.9-sandbox+oryOS.9 | @oryd/keto:v0.1.9-sandbox , ory-keto-sdk:v1.0.0-beta.9 (deprecated!) | oryd/keto:v0.1.9-sandbox_oryOS.9 , oryd/keto:v1.0.0-beta.9 (deleted Jan 15th 2019) |
- | v0.1.10-sandbox+oryOS.10 (example) | @oryd/keto:v0.1.10-sandbox | oryd/keto:v0.1.10-sandbox_oryOS.10 |
No code or database changes will be required when moving from
v1.0.0-beta.x
tov0.1.x-sandbox
Ory Docs
If you are looking for the old developer guide, click here.
The documentation got a major overhaul. We deprecated GitBook, which is no longer being developed, and moved to Docusaurus. Additionally, the API documentation is now integrated in Docusaurus using widdershins with custom templates, and no longer uses SwaggerUI. This is great, because everything is now in one place - and we added code examples for consuming the REST API for all major programming languages!
The new documentation will serve documentation the latest version (new version semantics) only, this will be oryOS.9
. This means
that the following versions will be documented in the new docs:
- Ory Hydra
v1.0.0-beta.9
- Ory Oathkeeper
v0.13.9+oryOS.9
- Ory Keto
v0.1.9-sandbox+oryOS.9
If you need to look up documentation on older versions (in the old format), you will be able to do so
here. This documentation will be available for a reasonable amount of time and you
will receive a notice with ample time if we shut that down. You can view the legacy REST API Documentation by browsing to the
hosted swagger ui and entering, for example,
https://raw.githubusercontent.com/ory/keto/v1.0.0-beta.8/docs/api.swagger.json
in the top bar.
Ory Security Console
The Ory Security Console will be compatible with oryOS.9
. While we work on implementing the new changes there you might see
error messages regarding compatibility. You may ignore them for now.
Outlook
Versions v1.0.0-beta.1
to v1.0.0-beta.9
are blacklisted for Ory Oathkeeper and Ory Keto. No future release will have those
versions. This will prevent potential future conflicts.
Conflict Resolution
If you need help with these changes or want us to handle these updates for you, write us now.