migrate / hasura
the database moves for free. the work is the permissions port.
hasura's GraphQL-over-postgres model is powerful but its metadata format makes the permission system hard to audit. briven exposes typed functions instead — every (role, table, action) rule becomes a readable check inside the function that replaces it.
what you're afraid of
do i lose GraphQL?
as a wire protocol, yes — briven uses typed RPC over HTTP. for client developers, the ergonomics are similar (typed args, typed return). but the permission story is much clearer.
every action and event trigger... do they port?
yes. hasura actions become briven mutation functions; event triggers become outbound webhooks (briven ships with HMAC-signed webhook delivery built in).
how do i find every permission rule?
hasura's metadata.yaml lists every (role, table, action) triple. we walk it programmatically and emit one TypeScript guard per rule. you review.
the conceptual mapping
your mental model survives the move. left column: what you call it in hasura. right column: where it lives in briven.
| hasura | briven |
|---|---|
| hasura tracked table | briven schema DSL (postgres carries directly) |
| metadata permission rule | explicit guard inside the briven function (readable, debuggable) |
| hasura action (webhook) | briven mutation function |
| hasura event trigger | briven outbound webhook subscriber (HMAC-signed) |
| remote schema | briven function that calls the remote API |
what the migration actually costs
ranked honestly: what comes for free, what we automate, what stays manual.
- free
data — pg_dump from your hasura postgres, pg_restore into briven.
- auto
schema introspection — your existing postgres tables port to briven DSL.
- auto
event triggers → outbound webhooks — mechanical translation of metadata.
- manual
permissions port — every (role, table, action) rule becomes a TypeScript guard. tedious but readable. usually ~half a day per 50 rules.
- manual
client query port — GraphQL queries become typed briven function calls. shape-similar; rewrite is mechanical.
questions you actually have
- will my dashboards lose GraphQL introspection?
- yes — briven doesn't do GraphQL. internal tools that depend on GraphQL introspection need rewiring to the briven HTTP API. mostly 1-day work.
- can i keep hasura running for a while?
- yes. parallel-run as long as you want. hasura points at the same postgres, briven points at briven's postgres copy; reads from either, writes to both during the window.
- what about hasura cloud auto-scaling?
- briven scales horizontally on the team tier. same auto-scaling story, no GraphQL-engine-specific knobs.
ready to start? no signup needed
leave us your email and we'll reach out within one business day. your hasura stays untouched the entire time.
already got a briven account?
jump straight into the in-product wizard for a more detailed intake form — you can save progress and track status from your dashboard.