Skip to content

SettingsClient

Public Settings Client

Provides read-only access to public settings for non-admin users. Access is controlled by RLS policies on the app.settings table.

const client = new FluxbaseClient(url, userToken)
// Get single public setting
const betaEnabled = await client.settings.get('features.beta_enabled')
console.log(betaEnabled) // { enabled: true }
// Get multiple public settings
const values = await client.settings.getMany([
'features.beta_enabled',
'features.dark_mode',
'public.app_version'
])
console.log(values)
// {
// 'features.beta_enabled': { enabled: true },
// 'features.dark_mode': { enabled: false },
// 'public.app_version': '1.0.0'
// }

new SettingsClient(fetch): SettingsClient

ParameterType
fetchFluxbaseFetch

SettingsClient

get(key): Promise<any>

Get a single setting’s value

Returns only the value field of the setting. Access is controlled by RLS policies - will return 403 if the user doesn’t have permission to read the setting.

ParameterTypeDescription
keystringSetting key (e.g., ‘features.beta_enabled’)

Promise<any>

Promise resolving to the setting’s value

Error if setting doesn’t exist or user lacks permission

// Get public setting (any user)
const value = await client.settings.get('features.beta_enabled')
console.log(value) // { enabled: true }
// Get restricted setting (requires permission)
try {
const secret = await client.settings.get('internal.api_key')
} catch (error) {
console.error('Access denied:', error)
}

getMany(keys): Promise<Record<string, any>>

Get multiple settings’ values by keys

Fetches multiple settings in a single request. Only returns settings the user has permission to read based on RLS policies. Settings the user can’t access will be omitted from the result (no error thrown).

ParameterTypeDescription
keysstring[]Array of setting keys to fetch

Promise<Record<string, any>>

Promise resolving to object mapping keys to values

const values = await client.settings.getMany([
'features.beta_enabled', // public - will be returned
'features.dark_mode', // public - will be returned
'internal.api_key' // secret - will be omitted
])
console.log(values)
// {
// 'features.beta_enabled': { enabled: true },
// 'features.dark_mode': { enabled: false }
// // 'internal.api_key' is omitted (no error)
// }