snapshot of https://github.com/ory/keto.git (master, 2026-09-16; blobs > 131072B omitted)
Some checks failed
CI / Run lints and checks (push) Failing after 47s
CI / Run tests (push) Failing after 1s
CI / Run race tests (push) Failing after 5s
CI / Build CLI docs (push) Has been skipped
CI / Run buf actions (push) Failing after 5s
CodeQL / Analyze (go) (push) Failing after 3s
CodeQL / Analyze (javascript) (push) Failing after 2s
Docker Image Scanners / scanners (push) Failing after 3s
Format / format (push) Failing after 3s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Draft newsletter (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped
Some checks failed
CI / Run lints and checks (push) Failing after 47s
CI / Run tests (push) Failing after 1s
CI / Run race tests (push) Failing after 5s
CI / Build CLI docs (push) Has been skipped
CI / Run buf actions (push) Failing after 5s
CodeQL / Analyze (go) (push) Failing after 3s
CodeQL / Analyze (javascript) (push) Failing after 2s
Docker Image Scanners / scanners (push) Failing after 3s
Format / format (push) Failing after 3s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Draft newsletter (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped
This commit is contained in:
222
UPGRADE.md
Normal file
222
UPGRADE.md
Normal file
@@ -0,0 +1,222 @@
|
||||
# Upgrading
|
||||
|
||||
The intent of this document is to make migration of breaking changes as easy as
|
||||
possible. Please note that not all breaking changes might be included here.
|
||||
Please check the [CHANGELOG.md](./CHANGELOG.md) for a full list of changes
|
||||
before finalizing the upgrade process.
|
||||
|
||||
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
||||
|
||||
- [0.4.0](#040)
|
||||
- [0.3.0-sandbox](#030-sandbox)
|
||||
- [Configuration](#configuration)
|
||||
- [ORY Access Control Policies Allowed Endpoint](#ory-access-control-policies-allowed-endpoint)
|
||||
- [SDK](#sdk)
|
||||
- [0.2.0-sandbox](#020-sandbox)
|
||||
- [Conceptual changes](#conceptual-changes)
|
||||
- [Deprecated](#deprecated)
|
||||
- [Changes](#changes)
|
||||
- [Additions](#additions)
|
||||
- [Untouched](#untouched)
|
||||
- [API Changes](#api-changes)
|
||||
- [Renamed Endpoints](#renamed-endpoints)
|
||||
- [Reworked Endpoints](#reworked-endpoints)
|
||||
- [New Endpoints](#new-endpoints)
|
||||
- [Migration](#migration)
|
||||
- [SQL](#sql)
|
||||
- [0.0.1](#001)
|
||||
- [CORS is disabled by default](#cors-is-disabled-by-default)
|
||||
|
||||
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
||||
|
||||
## 0.4.0-sandbox
|
||||
|
||||
This release focuses on a rework of the SDK pipeline. First of all, we have
|
||||
introduced new SDKs for all popular programming languages and published them on
|
||||
their respective package repositories:
|
||||
|
||||
- [Python](https://pypi.org/project/ory-keto-client/)
|
||||
- [PHP](https://packagist.org/packages/ory/keto-client)
|
||||
- [Go](https://github.com/ory/keto-client-go)
|
||||
- [NodeJS](https://www.npmjs.com/package/@oryd/keto-client) (with TypeScript)
|
||||
- [Java](https://search.maven.org/artifact/sh.ory.keto/keto-client)
|
||||
- [Ruby](https://rubygems.org/gems/ory-keto-client)
|
||||
|
||||
The SDKs hosted in this repository (under ./sdk/...) have been completely
|
||||
removed. Please use only the SDKs from the above sources from now on as it will
|
||||
also remove several issues that were caused by the previous SDK pipeline.
|
||||
|
||||
Unfortunately, there were breaking changes introduced by the new SDK generation:
|
||||
|
||||
- Several structs and fields have been renamed in the Go SDK. However, nothing
|
||||
else changed so upgrading should be a matter of half an hour if you made
|
||||
extensive use of the SDK, or several minutes if just one or two methods are
|
||||
being used.
|
||||
- All other SDKs changed to `openapi-generator`, which is a better maintained
|
||||
generator that creates better code than the one previously used. This
|
||||
manifests in TypeScript definitions for the NodeJS SDK and several other
|
||||
goodies. We do not have a proper migration path for those, unfortunately.
|
||||
|
||||
If you have issues with upgrading the SDK, please let us know in an issue on
|
||||
this repository!
|
||||
|
||||
## 0.3.0-sandbox
|
||||
|
||||
### Configuration
|
||||
|
||||
The configuration management was updated and now allows configuration via a
|
||||
config file. Environment variables can still be used to configure ORY Keto but
|
||||
have been updated. However, old env vars still work but will yield a warning.
|
||||
|
||||
An overview of an exemplary configuration file can be found in
|
||||
[./docs/config.yml](https://github.com/ory/hydra/blob/master/docs/config.yaml).
|
||||
|
||||
### ORY Access Control Policies Allowed Endpoint
|
||||
|
||||
Endpoint `/engines/acp/ory/{flavor}/allowed` now returns a 403 error when the
|
||||
request is disallowed.
|
||||
|
||||
### SDK
|
||||
|
||||
Generation of the Go SDK has moved from
|
||||
[`swagger-codegen`](https://github.com/swagger-api/swagger-codegen) to
|
||||
[`go-swagger`](https://github.com/go-swagger/go-swagger). If you wish to migrate
|
||||
your existing SDK integration please open an issue.
|
||||
|
||||
## 0.2.0-sandbox
|
||||
|
||||
ORY Keto has been completely reworked. The major goals of this refactoring are:
|
||||
|
||||
1. To allow easy extension of existing access control mechanisms.
|
||||
2. Improve stability and responsiveness.
|
||||
3. Support more than one access control mechanism. Future mechanisms include:
|
||||
RBAC, ACL, AWS IAM Policies, ...
|
||||
|
||||
We know that these changes seem massive. They are, but they will benefit the
|
||||
long-term use of this particular piece of software, and they will allow you to
|
||||
build better systems.
|
||||
|
||||
If you relied on ORY Keto before this release and you are looking for a
|
||||
migration path, don't hesitate to ask in
|
||||
[Ory Community Chat](https://slack.ory.com/) or open a
|
||||
[GitHub issue](https://github.com/ory/keto/issues/new/). Feel free to do the
|
||||
same if you want the access control policy feature implemented in ORY Hydra
|
||||
before version `1.0.0`.
|
||||
|
||||
### Conceptual changes
|
||||
|
||||
#### Deprecated
|
||||
|
||||
The following things have been completely deprecated:
|
||||
|
||||
1. Authorizers,
|
||||
2. Previous storage mechanisms.
|
||||
|
||||
#### Changes
|
||||
|
||||
The following things have changed:
|
||||
|
||||
1. ORY Keto no longer uses ORY Ladon as the engine but instead relies on the
|
||||
[Open Policy Agent](http://openpolicyagent.org/). The concept of ORY Ladon
|
||||
Access Policies are working exactly like before, the internal logic however
|
||||
was rewritten in Rego.
|
||||
2. The "Warden" concept has been deprecated and replaced.
|
||||
3. The CLI commands have changed - apart from `serve`, `version`,
|
||||
`migrate sql` - entirely.
|
||||
4. The API has changed (read the next section for information on this).
|
||||
5. Environment variables changed or have been removed.
|
||||
|
||||
#### Additions
|
||||
|
||||
The following things have been added:
|
||||
|
||||
1. ORY (Ladon) Access Control Policies with `exact` string `matching-strategy`.
|
||||
2. ORY (Ladon) Access Control Policies with `glob` string `matching-strategy`.
|
||||
|
||||
#### Untouched
|
||||
|
||||
The following things remain conceptually untouched:
|
||||
|
||||
1. ORY (Ladon) Access Control Policies with `regex` string `matching-strategy`.
|
||||
This is the logic that ORY Ladon and previous versions of ORY Keto implement.
|
||||
|
||||
### API Changes
|
||||
|
||||
#### Renamed Endpoints
|
||||
|
||||
- `GET,PUT,POST,DELETE /policies[/<id>]` moved to
|
||||
`/engines/acp/ory/<matching-strategy>/policies[/<id>]`.
|
||||
- `POST /policies` has been deprecated and merged with `PUT /policies/<id>`
|
||||
which is now available at
|
||||
`PUT /engines/acp/ory/<matching-strategy>/policies` and will upsert (insert
|
||||
or update) the policy identified by the `id` field in the JSON payload.
|
||||
- The request & response payloads **did not change** nor did any of the
|
||||
concepts.
|
||||
- `GET,PUT,POST,DELETE /roles[/<id>]` moved to
|
||||
`/engines/acp/ory/<matching-strategy>/roles[/<id>]`.
|
||||
- `POST /roles` has been deprecated and merged with `PUT /roles/<id>` which is
|
||||
now available at `PUT /engines/acp/ory/<matching-strategy>/policies` and
|
||||
will upsert (insert or update) the role identified by the `id` field in the
|
||||
JSON payload.
|
||||
- The request & response payloads **did not change** nor did any of the
|
||||
concepts.
|
||||
- `POST,GET /roles/<id>/members` move to
|
||||
`/engines/acp/ory/<matching-strategy>/roles/<id>/members`.
|
||||
- `POST /roles` has been moved to
|
||||
`PUT /engines/acp/ory/<matching-strategy>/policies/<id>/members` and will
|
||||
upsert (insert or update) the role identified by the `id` field in the URL
|
||||
path.
|
||||
- The request & response payloads **did not change** nor did any of the
|
||||
concepts.
|
||||
|
||||
#### Reworked Endpoints
|
||||
|
||||
The Warden concept has been deprecated. Previously, it was possible to send
|
||||
credentials alongside requests for prior authentication. This concept interfered
|
||||
with the clear boundary ORY Keto is focusing on, which is permissioning
|
||||
concepts.
|
||||
|
||||
The Warden API featured endpoints such as:
|
||||
|
||||
- `/warden/oauth2/access-tokens/authorize`: Permformed OAuth 2.0 Token
|
||||
Introspection on the `token` field, took the `sub` value of the introspection
|
||||
and used that as input to ORY (Ladon) Access Control Policies.
|
||||
- `/warden/oauth2/clients/authorize`: Validated the HTTP Basic Authorization
|
||||
Header using the OAuth 2.0 Client Credentials grant and took the `username`
|
||||
value of the HTTP Basic Authorization Header and used that as input to ORY
|
||||
(Ladon) Access Control Policies.
|
||||
|
||||
These endpoints have been deprecated without replacement. Another endpoint was
|
||||
`/warden/subjects/authorize` which used the format
|
||||
`{ "subject": "peter", "action": "delete", "resource": "something:valuable" }`
|
||||
as syntax. This endpoint is available in the exact same format at
|
||||
`/engines/acp/ory/<matching-strategy>/allowed`.
|
||||
|
||||
#### New Endpoints
|
||||
|
||||
- `GET /version`: Returns the running software version.
|
||||
- `GET /health/ready`: Returns `{"status": "ok"}` with a 200 HTTP response if
|
||||
the service is ready to accept connections and handle data.
|
||||
- `GET /health/alive`: Returns `{"status": "ok"}` with a 200 HTTP response if
|
||||
the service is ready to accept connections.
|
||||
|
||||
### Migration
|
||||
|
||||
If you relied on ORY Keto before this release and you are looking for a
|
||||
migration path, don't hesitate to [contact us](mailto:hi@ory.com). We will help
|
||||
you migrate and improve this guide as we see more migration use cases.
|
||||
|
||||
#### SQL
|
||||
|
||||
The SQL schema changed completely and it is not possible to migrate from the
|
||||
previous version to this version with just using `keto migrate sql`. Please ask
|
||||
in [the forums](https://community.ory.sh/) or open a
|
||||
[GitHub issue](https://github.com/ory/keto/issues/new/) if this affects you.
|
||||
|
||||
## 0.0.1
|
||||
|
||||
### CORS is disabled by default
|
||||
|
||||
A new environment variable `CORS_ENABLED` was introduced. It sets whether CORS
|
||||
is enabled ("true") or not ("false")". Default is disabled.
|
||||
Reference in New Issue
Block a user