Announcing Convex 1.11
Convex 1.11 is here with improved debugging and testing tools, faster queries, and more.
Highlights:
- Live updating action log lines in
npx convex logs
and the dashboard - Run a custom query from the dashboard
- New testing library
- Python client can subscribe to live query updates
- Faster queries with
Promise.all
Live updating log lines from actions
Instead of reporting all log lines at the end of a function call, we now show the log lines from actions as they happen via npx convex logs
and in the dashboard. We hope this helps with debugging and observability for long running actions.
Custom queries in the dashboard
In the dashboard, you can write a custom query to inspect your data and try out new changes without having to deploy new Convex functions. See docs.
Testing library and docs
We released a new TypeScript library called convex-test
for testing your Convex functions using a mock implementation of the Convex backend. Read the new Testing documentation page to get started.
You can also run tests against a real local backend. See this Stack post.
Query subscriptions in the Python client
Version 0.6 of the Convex Python client supports subscribing to queries. Install it with pip install convex
or try it out here: https://colab.research.google.com/drive/19o5xpraHnfrh-fcOwqiLK-LpoxlWZNYx
The old HTTP-based client is still available at convex.http_client.ConvexHttpClient
. If you need to run the Python client in an environment where WebSockets are not available or have some other reason an HTTP protocol is preferable, please let us know.
Other improvements
- Faster concurrent database reads: Convex now parallelizes more concurrent database reads, making patterns such as joins with
Promise.all
significantly faster:
const authors = await Promise.all(messages.map(
(msg) => ctx.db.get(msg.authorId)
));
- Improvements to
crypto
in the Convex runtime- more algorithms and formats supported by
crypto.subtle.importKey
(all except elliptic curve ECDSA/ECDH) crypto.subtle.exportKey
crypto.subtle.sign
(except RSA-PSS)crypto.subtle.verify
- more algorithms and formats supported by
- Removal of deprecated
convex/server
types:DatabaseReader
,DatabaseWriter
,QueryCtx
,MutationCtx
,ActionCtx
- Either use the
Generic
version (e.g.GenericQueryCtx
) or import the type specific to your schema from_generated/server
- Either use the