Checking auth with decorators
This is great, thank you for the reference! Question about that -- why do this middle-ware magic instead of simple function call like
```
async function checkAuth({db, auth}) {
const identity = await auth.getUserIdentity();
if (!identity) {...
Storing users in Convex
What is the recommended way to create a user in a Convex table corresponding to each user from my IDP? I was doing this
```
convex.setAuth(idToken);
const createUser = convex.mutation('user/create');
createUser()...
Auth0 demo
Hi friends! Trying to follow the auth0 tutorial https://github.com/get-convex/convex-demos/tree/main/users-and-auth
Getting this error screen when trying to login...

Notifying users on version changes
Something I'd be personally be curious to read about is some strategies for notifying users that their app is out-of-date upon a new frontend or backend deployment. Seems neat because I suspect you could do this with Convex more easily than with other setups?
Migrating data to Convex
Is there a recommended pattern on how to migrate from faunadb to convex ? Maybe airbyte could help?
Could I use an action to generate a pdf
Could I use an action to generate a pdf file with puppeteer and store it in convex?
403 Forbidden: BadAdminKey
I'm also getting 403 Forbidden: BadAdminKey: The provided admin key was invalid for this instance but ive generated and added the deploy key on the convex dashboard
online/offline + data sync, unreliable connectivity, PWA
Is Convex an excellent go-to DB tech for online/offline + data sync for apps to be used in poor/unreliable connectivity areas? And would it pair well - if at all needed - with PWA architecture?
I have to admit I have a guilty pleasure
I have to admit I have a guilty pleasure of OOP. Ideally, I want to have Class Instances in my state that have prototype functions to mutate themselves and/or other objects in state. I know namespaces and passing in the object as a first argument kind of does the same, but it just doesn't look as nice to me. By the looks of it, I should serialize class instances into POJOs for saving with convex, right? So does it make sense to have the following workflow in my mutations?
```
1. load POJO from convex db
2. deserialize into class instances with functions again
3. do OOP state manipulation magic...
I look forward to be able to read the
I look forward to be able to read the docs with dark mode enabled
NextAuth Convex Adapter
I'd like to do this, no target date right now. Something you'd find helpful sounds like?
Find mutation error message
Ill like to know how to get the error message from my mutations functions . I'm getting [CONVEX M(pos:addSale)] Uncaught Error: ${message} in stock\n at <anonymous> (../convex/pos.ts:14:15)\n at async Promise.all (index 0)all [as all] (<anonymous>)\n at async invokeMutation (../../node_modules/convex/src/server/impl/registration_impl.ts:24:14)\n
Convex Client not exiting cleanly
I'm having trouble getting
InternalConvexClient
to exit cleanly. The following code hangs, even though I call client.close(). Am I missing something?
```
import { InternalConvexClient } from "convex/browser";
import WebSocket from "ws";
...Table size
In Convex is there a way to get the number of rows without having to query it? I am trying to select a random row in one of my tables the database
Foil
I made a quick little game called Foil to try out Convex. I'm really loving what you guys have come up with here - it's super easy to use!
https://foiled.io/...
Using Convex from Node.js
@Tristan We're going to write up some docs on this soon. If you don't mind the React dependency, the ConvexReactClient is fine! Here's an example of doing this outside of React (this is in the browser, but it works similarly)