v0.19.0

NVIDIA/personaplexv0.19.0Oct 31, 2025by dswbx

AI Summary

v0.19.0 adds advanced permission filtering similar to Postgres RLS and finalizes Deno support with multiple asset serving strategies.

Key Highlights

  • Advanced permissions with RLS-style filtering
  • Finalized Deno support with multiple asset serving options
  • New mode helpers for automatic syncing and mode switching
  • Timestamps plugin for automatic field management

New Features

  • Advanced permissions
  • Deno support
  • Mode helpers
  • Timestamps plugin
  • Batch schema manager
  • Media body max size restriction
  • Auth cookie helpers
  • Role selection in user creation
  • SDK improvements
  • TypeScript definitions endpoint

Full Release Notes

## Advanced Permissions (à la Postgres RLS, https://github.com/bknd-io/bknd/pull/280)
You can now tweak your permissions to allow or deny access under certain conditions, as well as for permissions that supports it, filter the resource requested. Each permission has their own context, e.g. for data permissions, which entity is requested is part of the context. Starting with data permissions, you can now choose the policy effect to filter the resource, which adds an immutable filter to the query to isolate your data just like you can do with Postgres' Row Level Security (RLS). Unlike with Postgres, you can perform these changes visually with the same query syntax you already use with `where` clauses when fetching data. 

This is just the beginning. In coming releases, the context and filter capabilities for each permission will be improved. 

https://github.com/user-attachments/assets/292298ad-9235-4c1f-a8f1-c3033e232415

## Finalized Deno Support (https://github.com/bknd-io/bknd/pull/288)
Deno, just like any other JavaScript runtime, was already working with bknd. One main pitfall is how to serve the admin UI, and in case of Deno, this was the last missing step to gain full compatibility. Other runtimes, such as Node.js and Bun are relying on `node_modules`, which bknd then can serve the static assets from. However, on Deno, this may or may not be the case. Therefore you're offered 3 distinct ways to serve the static assets to cover every use case you may have:
1. use `serveStaticViaImport` to dynamically import the assets (recommended)
2. use `serveStatic` to serve copied assets (using `copy-assets` command) from your local directory
3. use `adminOptions.assetsPath` to fetch the assets from a remote location

Get started by reading the [Deno integration guide](https://docs.bknd.io/integration/deno). Deno has been added to the starters, so you can spin up a new project by running:

```sh
deno run npm:bknd create -i deno
```

## Mode helpers (https://github.com/bknd-io/bknd/pull/285)
The ability to run bknd in different modes (ui-only, code-only, hybrid) is great, but it requires a setup. To make this easier, bknd now offers 2 new mode helpers `code` and `hybrid`, to give you jump start:
* built-in syncing of config, types and secrets
* let bknd automatically sync the data schema in development
* automatically switch modes in hybrid (from db to code) in production
* automatically skip config validation in production to boost performance

Read more about the [Mode helpers](https://docs.bknd.io/usage/introduction/#mode-helpers) in the docs.

## Other Changes
* feat: timestamps plugin by @dswbx in https://github.com/bknd-io/bknd/pull/277
* feat: batch schema manager statements by @dswbx in https://github.com/bknd-io/bknd/pull/273
* feat: add media option to module to restrict body max size by @dswbx in https://github.com/bknd-io/bknd/pull/272
* feat: add helper methods for auth cookie headers by @dswbx in https://github.com/bknd-io/bknd/pull/271
* feat: add role selection and auth checks in user create command by @dswbx in https://github.com/bknd-io/bknd/pull/270
* Update docker image by @stormbyte in https://github.com/bknd-io/bknd/pull/281
* fix: SDK improvements to API and `useAuth` for remote instance by @dswbx in https://github.com/bknd-io/bknd/pull/284
* fix: dropzone improve mime type validation by @dswbx in https://github.com/bknd-io/bknd/pull/279
* feat: add endpoint/tool to retrieve TypeScript definitions for data entities by @dswbx in https://github.com/bknd-io/bknd/pull/286



**Full Changelog**: https://github.com/bknd-io/bknd/compare/v0.18.1...v0.19.0