Skip to content

FluxbaseClient

Main Fluxbase client class

Type ParameterDefault type
Databaseany
_SchemaName extends string & keyof Databaseany

new FluxbaseClient<Database, _SchemaName>(fluxbaseUrl, fluxbaseKey, options?): FluxbaseClient<Database, _SchemaName>

Create a new Fluxbase client instance

ParameterTypeDescription
fluxbaseUrlstringThe URL of your Fluxbase instance
fluxbaseKeystringThe anon key (JWT token with “anon” role). Generate using scripts/generate-keys.sh
options?FluxbaseClientOptionsAdditional client configuration options

FluxbaseClient<Database, _SchemaName>

const client = new FluxbaseClient(
'http://localhost:8080',
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...', // Anon JWT token
{ timeout: 30000 }
)

get http(): FluxbaseFetch

Get the internal HTTP client

Use this for advanced scenarios like making custom API calls or admin operations.

// Make a custom API call
const data = await client.http.get('/api/custom-endpoint')

FluxbaseFetch

The internal FluxbaseFetch instance

getAuthToken(): null | string

Get the current authentication token

null | string

The current JWT access token, or null if not authenticated


setAuthToken(token): void

Set a new authentication token

This updates both the HTTP client and realtime connection with the new token.

ParameterTypeDescription
tokennull | stringThe JWT access token to set, or null to clear authentication

void

from<T>(table): QueryBuilder<T>

Create a query builder for a database table

Type ParameterDefault type
Tany
ParameterTypeDescription
tablestringThe table name (can include schema, e.g., ‘public.users’)

QueryBuilder<T>

A query builder instance for constructing and executing queries

// Simple select
const { data } = await client.from('users').select('*').execute()
// With filters
const { data } = await client.from('products')
.select('id, name, price')
.gt('price', 100)
.eq('category', 'electronics')
.execute()
// Insert
await client.from('users').insert({ name: 'John', email: 'john@example.com' }).execute()

rpc<T>(functionName, params?): Promise<object>

Call a PostgreSQL function (Remote Procedure Call)

Type ParameterDefault type
Tany
ParameterTypeDescription
functionNamestringThe name of the PostgreSQL function to call
params?Record<string, unknown>Optional parameters to pass to the function

Promise<object>

Promise containing the function result or error

NameType
datanull | T
errornull | Error
// Call a function without parameters
const { data, error } = await client.rpc('get_total_users')
// Call a function with parameters
const { data, error } = await client.rpc('calculate_discount', {
product_id: 123,
coupon_code: 'SAVE20'
})

schema(schemaName): SchemaQueryBuilder

Access a specific database schema

Use this to query tables in non-public schemas.

ParameterTypeDescription
schemaNamestringThe schema name (e.g., ‘jobs’, ‘analytics’)

SchemaQueryBuilder

A schema query builder for constructing queries on that schema

// Query the jobs.execution_logs table
const { data } = await client
.schema('jobs')
.from('execution_logs')
.select('*')
.eq('job_id', jobId)
.execute()
// Insert into a custom schema table
await client
.schema('analytics')
.from('events')
.insert({ event_type: 'click', data: {} })
.execute()

admin: FluxbaseAdmin

Admin module for instance management (requires admin authentication)


auth: FluxbaseAuth

Authentication module for user management


functions: FluxbaseFunctions

Functions module for invoking and managing edge functions


jobs: FluxbaseJobs

Jobs module for submitting and monitoring background jobs


management: FluxbaseManagement

Management module for API keys, webhooks, and invitations


realtime: FluxbaseRealtime

Realtime module for WebSocket subscriptions


settings: SettingsClient

Settings module for reading public application settings (respects RLS policies)


storage: FluxbaseStorage

Storage module for file operations

channel(name, config?): RealtimeChannel

Create or get a realtime channel (Supabase-compatible)

ParameterTypeDescription
namestringChannel name
config?RealtimeChannelConfigOptional channel configuration

RealtimeChannel

RealtimeChannel instance

const channel = client.channel('room-1', {
broadcast: { self: true },
presence: { key: 'user-123' }
})
.on('broadcast', { event: 'message' }, (payload) => {
console.log('Message:', payload)
})
.subscribe()

removeChannel(channel): Promise<"error" | "ok">

Remove a realtime channel (Supabase-compatible)

ParameterTypeDescription
channelRealtimeChannelThe channel to remove

Promise<"error" | "ok">

Promise resolving to status

const channel = client.channel('room-1')
await client.removeChannel(channel)