0.442 (25 Feb 2026)

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: auto

There 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!