keto v0.9.0-alpha.0 Release Notes

Release Date: 2022-08-01 // over 1 year ago
  • 🚀 This release ships a few changes in the API paths. Requests and responses were 🔨 not changed. However, we did A LOT of internal refactoring and improvements on the persistence layer. Some naming in the SDKs changed, it is a lot cleaner now. 🚚 One important change is that we removed the single table migrator. From now on to migrate from v0.6.0-alpha.1, please first migrate the legacy namespaces using v0.8.0-alpha.2 We also overhauled the whole persistence structure to ensure high scalability. This means that the migration might take a bit longer than usual, ✅ so please test the process first on a backup or staging environment. For all the details, check out the full changelog.

    💥 Breaking Changes

    🚚 keto namespace migrate ... commands were removed. To migrate from v0.6.0-alpha.1, please first migrate the legacy namespaces using v0.8.0-alpha.2

    ⬆️ The protobuf API was bumped to v1alpha2. Please upgrade your client dependency 👍 to that version. v1alpha1 is still supported for now, but might be dropped soon.

    🛰 Some payload keys are now (not) required anymore. The generated SDKs will likely have breaking changes.

    Co-authored-by: Patrik [email protected] Co-authored-by: hperl [email protected]

    /check is now /relation-tupes/check

    /expand is now /relation-tuples/expand

    /relation-tuples is now /admin/relation-tuples for write APIs

    📦 gRPC package is now called ory.keto.relation_tuples.v1alpha2

    🛠 gRPC relation-tuple-delta action enum names are prefixed with ACTION_

    🐛 Bug Fixes

    • cli: Make flag registration non-racy (8415ced)
    • 0️⃣ Enable telemetry by default (9dc8c7c)
    • Hide relation tuples with deleted namespace (cb1a2dd)

    Code Generation

    • 🚀 Pin v0.9.0-alpha.0 release commit (6a13898)

    🔨 Code Refactoring

    This change refactors the API paths to be consistent with the rest of the Ory ecosystem. This step is required for the unified Ory SDK. Additionally, as we plan to add high level APIs, e.g. for RBAC. The check and expand API paths changed to allow adding those.

    • 🔄 Change pagination to use keyset pagination (7b861c9):

    The page token now is the last ID of the previous page. This enables faster queries and more stable pagination. NOTE: in case an integration modified page tokens to control pagination, this change will break the integration. Page tokens are opaque strings and should never be messed with.

    📚 Documentation

    • 🔦 Expose embedded OpenAPI spec (f9d20e3)
    • 🛠 Fix docker compose demo setup (#872) (e89fbb0)
    • 👌 Improve wording in README (#881) (fd6af60)
    • 👷 Shorten CI status badge (#928) (81d880d)
    • 🔖 version schema: Require version or fall back to latest (#863) (5306c93)

    🔋 Features

    • ➕ Add check endpoints that do not mirror status code (#853) (07d0fbd)
    • ➕ Add reverse lookup indices (#875) (25af263)
    • ➕ Add spec for namespace configs (3d61b1c):

    Co-authored-by: hackerman [email protected]

    With this change Keto now maps strings to UUIDv5 on the storage layer. This change allows unlimited strings to be used while maintaining good performance. Further, it reduces the likeliness of database hot-spots. The migration that applies this mapping might take some time, so please confirm that your migration strategy works for you.

    • Metric names same as for Kratos (315ff41)
    • tracing: Improved tracing for persisters and requests (#878) (eb62c50)
    • tracing: Switch to opentelemetry (#861) (31f38ed)

    ✅ Tests

    • ✂ Remove double dockertest cleanup (0bfb10e)
    • ✅ Use isolated databases to parallelize all tests (bc09032)