25 February, 2026
We're excited to announce the built-in User model, simplifying user management in your Keel applications.
Built-in User Model
Keel now provides a built-in User model that automatically manages user records alongside authentication. Enable it with the userCreation setting in keelconfig.yaml:
auth:
userCreation: autoThere are three modes:
off(default) - No User model is injected. Existing behaviour is preserved.auto- A User record is automatically created (or linked by email) on every authentication. No custom code required.required- Authentication is denied unless a pre-existing User with a matching email exists. Use this when users must be pre-provisioned before they can log in.
Extending the User Model
Add custom fields and actions to the User model using model extensions:
extend model User {
fields {
name Text?
department Text?
}
actions {
get getUser(id)
update updateUser(id) with (name, department)
}
@permission(expression: ctx.isAuthenticated, actions: [get, update])
}Extended fields must be optional or have a @default value, since User records are auto-created by the system.
The linked User is accessible in functions via ctx.identity.user. Each Identity record gets a user foreign key pointing to the linked User.
Fixes and Improvements
For a full list of fixes and improvements, check out our GitHub releases page (opens in a new tab).
For any issues or feedback, please contact us at help@keel.so.
Thank you for using Keel!