Database
Query tables with a fluent builder. Filters, nested selects, and RPC.
Select
All queries return { data, error }. Builders are thenable — you can await them directly.
index.ts
const { data, error } = await voltbase
.from('products')
.select('id, name, price')
.eq('active', true)
.order('created_at', 'desc')
.limit(10);Filters
| Method | Example |
|---|---|
.eq / .neq | .eq('id', '…') |
.gt / .gte / .lt / .lte | .gte('price', 10) |
.like / .ilike | .ilike('name', '%phone%') |
.is | .is('deleted_at', 'null') |
Nested select
One-level embeds over foreign keys — commas inside (…) are preserved:
index.ts
const { data } = await voltbase
.from('posts')
.select('id, title, author:users(id, email)');Insert / update / delete
index.ts
await voltbase.from('products').insert({ name: 'Keyboard', price: 99 });
await voltbase
.from('products')
.eq('id', productId)
.update({ price: 79 });
await voltbase.from('products').eq('id', productId).delete();Updates & deletes
The SDK currently targets rows with
.eq('id', …) for update/delete. Prefer service role or authenticated JWT + RLS for writes.RPC
index.ts
const { data, error } = await voltbase.rpc('get_user_stats', {
user_id: '…',
});When a session exists, REST/RPC requests automatically send X-User-Jwt so RLS can use uid().