v0.19.0

alibaba/zvecv0.19.0Oct 31, 2025by dswbx

AI Summary

Introduces advanced permissions modeled after Postgres RLS, finalizes Deno support, and adds mode helpers to simplify setup for different runtime modes.

Key Highlights

  • Advanced permissions with policy effects and filtering
  • Finalized Deno support with multiple asset serving options
  • New mode helpers for code and hybrid modes

New Features

  • Timestamps plugin
  • Batch schema manager statements
  • Media option to restrict body max size
  • Helper methods for auth cookie headers
  • Endpoint to retrieve TypeScript definitions

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