1 September, 2023
These changes have been released with version 0.365
of the CLI.
Summary
We are excited to announce the release of Keel 0.365
. This update brings breaking changes to our Keel schema language, a new feature and bug fixes aimed at enhancing user experience and productivity.
Breaking Change
We are excited to introduce the action hooks, which is a complete revamp of functions. You will need to restructure your existing functions to use Hooks. With Hooks we now write most of the implementation of your function for you, which should mean less code for you to write.
Hooks allow you to extend the default behaviour of each action by hooking into several new lifecycle events:
beforeWrite
: allows you to modify the values prior to writing to the database.afterWrite
: allows you to perform side effects once a record has been created or updated. Useful for creating related data, and performing custom permissions checks.beforeQuery
: allows you to extend the existing query that we build for you, or alternatively replace the query with a custom query entirely.afterQuery
: allows you to perform side effects on the data returned from the query, such as performing custom permissions checks on the data, or even modifying the data returned from the query to present it in a certain way.
Once you’ve updated your Keel CLI to the new version, any existing Keel schemas in your repo that leverage the old functions
/ operations
keywords will be invalid.
New Features
We now have full support for OIDC external provides which changes the behaviour of authentication for the CLI. Here is what is included with this new feature:
- The CLI now embeds a private key to use for
run
andtest
commands - ALL tokens must now be signed
- Support for audience claims check for external issuers
- Support for he OIDC discovery spec for issuers
- Cache responses for OIDC config, user info and JWKS based on response cache control headers
Bug Fixes
- Fixed a bug in the Keel schema validation process that is causing the Keel validate and Keel run to throw a nil pointer error.
For any issues or feedback, please visit the support channel on our community discord or contact us at help@keel.so.
Thank you for using Keel!