@nimbleflux/fluxbase-sdk 2026.3.7-rc.2 → 2026.3.7-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +186 -1006
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +80 -1004
- package/dist/index.d.ts +80 -1004
- package/dist/index.js +186 -1006
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -2560,7 +2560,11 @@ var StorageBucket = class {
|
|
|
2560
2560
|
}
|
|
2561
2561
|
let response;
|
|
2562
2562
|
if (options?.onUploadProgress) {
|
|
2563
|
-
response = await this.uploadWithProgress(
|
|
2563
|
+
response = await this.uploadWithProgress(
|
|
2564
|
+
path,
|
|
2565
|
+
formData,
|
|
2566
|
+
options.onUploadProgress
|
|
2567
|
+
);
|
|
2564
2568
|
} else {
|
|
2565
2569
|
response = await this.fetch.request(
|
|
2566
2570
|
`/api/v1/storage/${this.bucketName}/${path}`,
|
|
@@ -2668,7 +2672,10 @@ var StorageBucket = class {
|
|
|
2668
2672
|
async uploadStream(path, stream, size, options) {
|
|
2669
2673
|
try {
|
|
2670
2674
|
if (size <= 0) {
|
|
2671
|
-
return {
|
|
2675
|
+
return {
|
|
2676
|
+
data: null,
|
|
2677
|
+
error: new Error("size must be a positive number")
|
|
2678
|
+
};
|
|
2672
2679
|
}
|
|
2673
2680
|
const headers = {
|
|
2674
2681
|
...this.fetch["defaultHeaders"],
|
|
@@ -2715,7 +2722,9 @@ var StorageBucket = class {
|
|
|
2715
2722
|
);
|
|
2716
2723
|
if (!response.ok) {
|
|
2717
2724
|
const errorData = await response.json().catch(() => ({ error: response.statusText }));
|
|
2718
|
-
throw new Error(
|
|
2725
|
+
throw new Error(
|
|
2726
|
+
errorData.error || `Upload failed: ${response.statusText}`
|
|
2727
|
+
);
|
|
2719
2728
|
}
|
|
2720
2729
|
const result = await response.json();
|
|
2721
2730
|
return {
|
|
@@ -3114,7 +3123,10 @@ var StorageBucket = class {
|
|
|
3114
3123
|
return { data: null, error: new Error("Upload aborted") };
|
|
3115
3124
|
}
|
|
3116
3125
|
const chunkController = new AbortController();
|
|
3117
|
-
const timeoutId = setTimeout(
|
|
3126
|
+
const timeoutId = setTimeout(
|
|
3127
|
+
() => chunkController.abort(),
|
|
3128
|
+
chunkTimeout
|
|
3129
|
+
);
|
|
3118
3130
|
if (options?.signal) {
|
|
3119
3131
|
options.signal.addEventListener(
|
|
3120
3132
|
"abort",
|
|
@@ -3321,6 +3333,42 @@ var StorageBucket = class {
|
|
|
3321
3333
|
return { data: null, error };
|
|
3322
3334
|
}
|
|
3323
3335
|
}
|
|
3336
|
+
/**
|
|
3337
|
+
* Copy a file to a new path
|
|
3338
|
+
*
|
|
3339
|
+
* @param fromPath - Source file path
|
|
3340
|
+
* @param toPath - Destination file path
|
|
3341
|
+
* @returns Promise resolving to { data, error } tuple
|
|
3342
|
+
*/
|
|
3343
|
+
async copy(fromPath, toPath) {
|
|
3344
|
+
try {
|
|
3345
|
+
const data = await this.fetch.post(
|
|
3346
|
+
`/api/v1/storage/${this.bucketName}/copy`,
|
|
3347
|
+
{ from_path: fromPath, to_path: toPath }
|
|
3348
|
+
);
|
|
3349
|
+
return { data, error: null };
|
|
3350
|
+
} catch (error) {
|
|
3351
|
+
return { data: null, error };
|
|
3352
|
+
}
|
|
3353
|
+
}
|
|
3354
|
+
/**
|
|
3355
|
+
* Move a file to a new path
|
|
3356
|
+
*
|
|
3357
|
+
* @param fromPath - Source file path
|
|
3358
|
+
* @param toPath - Destination file path
|
|
3359
|
+
* @returns Promise resolving to { data, error } tuple
|
|
3360
|
+
*/
|
|
3361
|
+
async move(fromPath, toPath) {
|
|
3362
|
+
try {
|
|
3363
|
+
const data = await this.fetch.post(
|
|
3364
|
+
`/api/v1/storage/${this.bucketName}/move`,
|
|
3365
|
+
{ from_path: fromPath, to_path: toPath }
|
|
3366
|
+
);
|
|
3367
|
+
return { data, error: null };
|
|
3368
|
+
} catch (error) {
|
|
3369
|
+
return { data: null, error };
|
|
3370
|
+
}
|
|
3371
|
+
}
|
|
3324
3372
|
/**
|
|
3325
3373
|
* Get a public URL for a file
|
|
3326
3374
|
* @param path - The file path
|
|
@@ -3443,50 +3491,6 @@ var StorageBucket = class {
|
|
|
3443
3491
|
return { data: null, error };
|
|
3444
3492
|
}
|
|
3445
3493
|
}
|
|
3446
|
-
/**
|
|
3447
|
-
* Move a file to a new location
|
|
3448
|
-
* @param fromPath - Current file path
|
|
3449
|
-
* @param toPath - New file path
|
|
3450
|
-
*/
|
|
3451
|
-
async move(fromPath, toPath) {
|
|
3452
|
-
try {
|
|
3453
|
-
await this.fetch.post(
|
|
3454
|
-
`/api/v1/storage/${this.bucketName}/move`,
|
|
3455
|
-
{
|
|
3456
|
-
from_path: fromPath,
|
|
3457
|
-
to_path: toPath
|
|
3458
|
-
}
|
|
3459
|
-
);
|
|
3460
|
-
return {
|
|
3461
|
-
data: { message: "Successfully moved" },
|
|
3462
|
-
error: null
|
|
3463
|
-
};
|
|
3464
|
-
} catch (error) {
|
|
3465
|
-
return { data: null, error };
|
|
3466
|
-
}
|
|
3467
|
-
}
|
|
3468
|
-
/**
|
|
3469
|
-
* Copy a file to a new location
|
|
3470
|
-
* @param fromPath - Source file path
|
|
3471
|
-
* @param toPath - Destination file path
|
|
3472
|
-
*/
|
|
3473
|
-
async copy(fromPath, toPath) {
|
|
3474
|
-
try {
|
|
3475
|
-
await this.fetch.post(
|
|
3476
|
-
`/api/v1/storage/${this.bucketName}/copy`,
|
|
3477
|
-
{
|
|
3478
|
-
from_path: fromPath,
|
|
3479
|
-
to_path: toPath
|
|
3480
|
-
}
|
|
3481
|
-
);
|
|
3482
|
-
return {
|
|
3483
|
-
data: { path: toPath },
|
|
3484
|
-
error: null
|
|
3485
|
-
};
|
|
3486
|
-
} catch (error) {
|
|
3487
|
-
return { data: null, error };
|
|
3488
|
-
}
|
|
3489
|
-
}
|
|
3490
3494
|
/**
|
|
3491
3495
|
* Share a file with another user (RLS)
|
|
3492
3496
|
* @param path - The file path
|
|
@@ -4313,25 +4317,6 @@ var AppSettingsManager = class {
|
|
|
4313
4317
|
request
|
|
4314
4318
|
);
|
|
4315
4319
|
}
|
|
4316
|
-
/**
|
|
4317
|
-
* Reset all application settings to defaults
|
|
4318
|
-
*
|
|
4319
|
-
* This will delete all custom settings and return to default values.
|
|
4320
|
-
*
|
|
4321
|
-
* @returns Promise resolving to AppSettings - Default settings
|
|
4322
|
-
*
|
|
4323
|
-
* @example
|
|
4324
|
-
* ```typescript
|
|
4325
|
-
* const defaults = await client.admin.settings.app.reset()
|
|
4326
|
-
* console.log('Settings reset to defaults:', defaults)
|
|
4327
|
-
* ```
|
|
4328
|
-
*/
|
|
4329
|
-
async reset() {
|
|
4330
|
-
return await this.fetch.post(
|
|
4331
|
-
"/api/v1/admin/app/settings/reset",
|
|
4332
|
-
{}
|
|
4333
|
-
);
|
|
4334
|
-
}
|
|
4335
4320
|
/**
|
|
4336
4321
|
* Enable user signup
|
|
4337
4322
|
*
|
|
@@ -4927,6 +4912,14 @@ var AppSettingsManager = class {
|
|
|
4927
4912
|
);
|
|
4928
4913
|
return response.value;
|
|
4929
4914
|
}
|
|
4915
|
+
/**
|
|
4916
|
+
* Reset all application settings to their default values
|
|
4917
|
+
*
|
|
4918
|
+
* @returns Promise resolving to the default app settings
|
|
4919
|
+
*/
|
|
4920
|
+
async reset() {
|
|
4921
|
+
return this.fetch.post("/api/v1/admin/app/settings/reset", {});
|
|
4922
|
+
}
|
|
4930
4923
|
};
|
|
4931
4924
|
var EmailTemplateManager = class {
|
|
4932
4925
|
constructor(fetch2) {
|
|
@@ -7515,24 +7508,14 @@ var FluxbaseAdminJobs = class _FluxbaseAdminJobs {
|
|
|
7515
7508
|
/**
|
|
7516
7509
|
* Create a new job function
|
|
7517
7510
|
*
|
|
7518
|
-
* @param
|
|
7519
|
-
* @returns Promise resolving to { data, error } tuple with created job function
|
|
7520
|
-
*
|
|
7521
|
-
* @example
|
|
7522
|
-
* ```typescript
|
|
7523
|
-
* const { data, error } = await client.admin.jobs.create({
|
|
7524
|
-
* name: 'process-data',
|
|
7525
|
-
* code: 'export async function handler(req) { return { success: true } }',
|
|
7526
|
-
* enabled: true,
|
|
7527
|
-
* timeout_seconds: 300
|
|
7528
|
-
* })
|
|
7529
|
-
* ```
|
|
7511
|
+
* @param params - Job function configuration
|
|
7512
|
+
* @returns Promise resolving to { data, error } tuple with created job function
|
|
7530
7513
|
*/
|
|
7531
|
-
async create(
|
|
7514
|
+
async create(params) {
|
|
7532
7515
|
try {
|
|
7533
7516
|
const data = await this.fetch.post(
|
|
7534
7517
|
"/api/v1/admin/jobs/functions",
|
|
7535
|
-
|
|
7518
|
+
params
|
|
7536
7519
|
);
|
|
7537
7520
|
return { data, error: null };
|
|
7538
7521
|
} catch (error) {
|
|
@@ -7613,50 +7596,42 @@ var FluxbaseAdminJobs = class _FluxbaseAdminJobs {
|
|
|
7613
7596
|
}
|
|
7614
7597
|
}
|
|
7615
7598
|
/**
|
|
7616
|
-
*
|
|
7599
|
+
* Delete a job function
|
|
7617
7600
|
*
|
|
7618
7601
|
* @param namespace - Namespace
|
|
7619
7602
|
* @param name - Job function name
|
|
7620
|
-
* @
|
|
7621
|
-
* @returns Promise resolving to { data, error } tuple with updated job function metadata
|
|
7603
|
+
* @returns Promise resolving to { data, error } tuple
|
|
7622
7604
|
*
|
|
7623
7605
|
* @example
|
|
7624
7606
|
* ```typescript
|
|
7625
|
-
* const { data, error } = await client.admin.jobs.
|
|
7626
|
-
* enabled: false,
|
|
7627
|
-
* timeout_seconds: 600
|
|
7628
|
-
* })
|
|
7607
|
+
* const { data, error } = await client.admin.jobs.delete('default', 'process-data')
|
|
7629
7608
|
* ```
|
|
7630
7609
|
*/
|
|
7631
|
-
async
|
|
7610
|
+
async delete(namespace, name) {
|
|
7632
7611
|
try {
|
|
7633
|
-
|
|
7634
|
-
`/api/v1/admin/jobs/functions/${namespace}/${name}
|
|
7635
|
-
updates
|
|
7612
|
+
await this.fetch.delete(
|
|
7613
|
+
`/api/v1/admin/jobs/functions/${namespace}/${name}`
|
|
7636
7614
|
);
|
|
7637
|
-
return { data, error: null };
|
|
7615
|
+
return { data: null, error: null };
|
|
7638
7616
|
} catch (error) {
|
|
7639
7617
|
return { data: null, error };
|
|
7640
7618
|
}
|
|
7641
7619
|
}
|
|
7642
7620
|
/**
|
|
7643
|
-
*
|
|
7621
|
+
* Update an existing job function
|
|
7644
7622
|
*
|
|
7645
7623
|
* @param namespace - Namespace
|
|
7646
7624
|
* @param name - Job function name
|
|
7647
|
-
* @
|
|
7648
|
-
*
|
|
7649
|
-
* @example
|
|
7650
|
-
* ```typescript
|
|
7651
|
-
* const { data, error } = await client.admin.jobs.delete('default', 'process-data')
|
|
7652
|
-
* ```
|
|
7625
|
+
* @param updates - Fields to update
|
|
7626
|
+
* @returns Promise resolving to { data, error } tuple with updated job function
|
|
7653
7627
|
*/
|
|
7654
|
-
async
|
|
7628
|
+
async update(namespace, name, updates) {
|
|
7655
7629
|
try {
|
|
7656
|
-
await this.fetch.
|
|
7657
|
-
`/api/v1/admin/jobs/functions/${namespace}/${name}
|
|
7630
|
+
const data = await this.fetch.put(
|
|
7631
|
+
`/api/v1/admin/jobs/functions/${namespace}/${name}`,
|
|
7632
|
+
updates
|
|
7658
7633
|
);
|
|
7659
|
-
return { data
|
|
7634
|
+
return { data, error: null };
|
|
7660
7635
|
} catch (error) {
|
|
7661
7636
|
return { data: null, error };
|
|
7662
7637
|
}
|
|
@@ -8171,18 +8146,10 @@ var FluxbaseAdminAI = class {
|
|
|
8171
8146
|
}
|
|
8172
8147
|
}
|
|
8173
8148
|
/**
|
|
8174
|
-
* Get details of a specific provider
|
|
8149
|
+
* Get details of a specific AI provider
|
|
8175
8150
|
*
|
|
8176
8151
|
* @param id - Provider ID
|
|
8177
8152
|
* @returns Promise resolving to { data, error } tuple with provider details
|
|
8178
|
-
*
|
|
8179
|
-
* @example
|
|
8180
|
-
* ```typescript
|
|
8181
|
-
* const { data, error } = await client.admin.ai.getProvider('uuid')
|
|
8182
|
-
* if (data) {
|
|
8183
|
-
* console.log('Provider:', data.display_name)
|
|
8184
|
-
* }
|
|
8185
|
-
* ```
|
|
8186
8153
|
*/
|
|
8187
8154
|
async getProvider(id) {
|
|
8188
8155
|
try {
|
|
@@ -8197,39 +8164,24 @@ var FluxbaseAdminAI = class {
|
|
|
8197
8164
|
/**
|
|
8198
8165
|
* Create a new AI provider
|
|
8199
8166
|
*
|
|
8200
|
-
* @param
|
|
8167
|
+
* @param params - Provider configuration including name, provider_type, and optional config
|
|
8201
8168
|
* @returns Promise resolving to { data, error } tuple with created provider
|
|
8202
|
-
*
|
|
8203
|
-
* @example
|
|
8204
|
-
* ```typescript
|
|
8205
|
-
* const { data, error } = await client.admin.ai.createProvider({
|
|
8206
|
-
* name: 'openai-main',
|
|
8207
|
-
* display_name: 'OpenAI (Main)',
|
|
8208
|
-
* provider_type: 'openai',
|
|
8209
|
-
* is_default: true,
|
|
8210
|
-
* config: {
|
|
8211
|
-
* api_key: 'sk-...',
|
|
8212
|
-
* model: 'gpt-4-turbo',
|
|
8213
|
-
* }
|
|
8214
|
-
* })
|
|
8215
|
-
* ```
|
|
8216
8169
|
*/
|
|
8217
|
-
async createProvider(
|
|
8170
|
+
async createProvider(params) {
|
|
8218
8171
|
try {
|
|
8219
|
-
const
|
|
8220
|
-
|
|
8221
|
-
|
|
8222
|
-
|
|
8223
|
-
|
|
8224
|
-
|
|
8225
|
-
|
|
8172
|
+
const body = {
|
|
8173
|
+
name: params.name,
|
|
8174
|
+
provider_type: params.provider_type
|
|
8175
|
+
};
|
|
8176
|
+
if (params.display_name !== void 0)
|
|
8177
|
+
body.display_name = params.display_name;
|
|
8178
|
+
if (params.is_default !== void 0) body.is_default = params.is_default;
|
|
8179
|
+
if (params.config) {
|
|
8180
|
+
body.config = normalizeConfig(params.config);
|
|
8226
8181
|
}
|
|
8227
8182
|
const data = await this.fetch.post(
|
|
8228
8183
|
"/api/v1/admin/ai/providers",
|
|
8229
|
-
|
|
8230
|
-
...request,
|
|
8231
|
-
config: normalizedConfig
|
|
8232
|
-
}
|
|
8184
|
+
body
|
|
8233
8185
|
);
|
|
8234
8186
|
return { data, error: null };
|
|
8235
8187
|
} catch (error) {
|
|
@@ -8242,34 +8194,16 @@ var FluxbaseAdminAI = class {
|
|
|
8242
8194
|
* @param id - Provider ID
|
|
8243
8195
|
* @param updates - Fields to update
|
|
8244
8196
|
* @returns Promise resolving to { data, error } tuple with updated provider
|
|
8245
|
-
*
|
|
8246
|
-
* @example
|
|
8247
|
-
* ```typescript
|
|
8248
|
-
* const { data, error } = await client.admin.ai.updateProvider('uuid', {
|
|
8249
|
-
* display_name: 'Updated Name',
|
|
8250
|
-
* config: {
|
|
8251
|
-
* api_key: 'new-key',
|
|
8252
|
-
* model: 'gpt-4-turbo',
|
|
8253
|
-
* },
|
|
8254
|
-
* enabled: true,
|
|
8255
|
-
* })
|
|
8256
|
-
* ```
|
|
8257
8197
|
*/
|
|
8258
8198
|
async updateProvider(id, updates) {
|
|
8259
8199
|
try {
|
|
8260
|
-
|
|
8200
|
+
const body = { ...updates };
|
|
8261
8201
|
if (updates.config) {
|
|
8262
|
-
|
|
8263
|
-
for (const [key, value] of Object.entries(updates.config)) {
|
|
8264
|
-
if (value !== void 0 && value !== null) {
|
|
8265
|
-
normalizedConfig[key] = String(value);
|
|
8266
|
-
}
|
|
8267
|
-
}
|
|
8268
|
-
normalizedUpdates = { ...updates, config: normalizedConfig };
|
|
8202
|
+
body.config = normalizeConfig(updates.config);
|
|
8269
8203
|
}
|
|
8270
8204
|
const data = await this.fetch.put(
|
|
8271
8205
|
`/api/v1/admin/ai/providers/${id}`,
|
|
8272
|
-
|
|
8206
|
+
body
|
|
8273
8207
|
);
|
|
8274
8208
|
return { data, error: null };
|
|
8275
8209
|
} catch (error) {
|
|
@@ -8277,15 +8211,10 @@ var FluxbaseAdminAI = class {
|
|
|
8277
8211
|
}
|
|
8278
8212
|
}
|
|
8279
8213
|
/**
|
|
8280
|
-
* Set a provider as the default
|
|
8214
|
+
* Set a provider as the default provider
|
|
8281
8215
|
*
|
|
8282
8216
|
* @param id - Provider ID
|
|
8283
8217
|
* @returns Promise resolving to { data, error } tuple with updated provider
|
|
8284
|
-
*
|
|
8285
|
-
* @example
|
|
8286
|
-
* ```typescript
|
|
8287
|
-
* const { data, error } = await client.admin.ai.setDefaultProvider('uuid')
|
|
8288
|
-
* ```
|
|
8289
8218
|
*/
|
|
8290
8219
|
async setDefaultProvider(id) {
|
|
8291
8220
|
try {
|
|
@@ -8299,15 +8228,10 @@ var FluxbaseAdminAI = class {
|
|
|
8299
8228
|
}
|
|
8300
8229
|
}
|
|
8301
8230
|
/**
|
|
8302
|
-
* Delete
|
|
8231
|
+
* Delete an AI provider
|
|
8303
8232
|
*
|
|
8304
8233
|
* @param id - Provider ID
|
|
8305
8234
|
* @returns Promise resolving to { data, error } tuple
|
|
8306
|
-
*
|
|
8307
|
-
* @example
|
|
8308
|
-
* ```typescript
|
|
8309
|
-
* const { data, error } = await client.admin.ai.deleteProvider('uuid')
|
|
8310
|
-
* ```
|
|
8311
8235
|
*/
|
|
8312
8236
|
async deleteProvider(id) {
|
|
8313
8237
|
try {
|
|
@@ -8321,31 +8245,24 @@ var FluxbaseAdminAI = class {
|
|
|
8321
8245
|
* Set a provider as the embedding provider
|
|
8322
8246
|
*
|
|
8323
8247
|
* @param id - Provider ID
|
|
8324
|
-
* @returns Promise resolving to { data, error } tuple
|
|
8325
|
-
*
|
|
8326
|
-
* @example
|
|
8327
|
-
* ```typescript
|
|
8328
|
-
* const { data, error } = await client.admin.ai.setEmbeddingProvider('uuid')
|
|
8329
|
-
* ```
|
|
8248
|
+
* @returns Promise resolving to { data, error } tuple with updated provider
|
|
8330
8249
|
*/
|
|
8331
8250
|
async setEmbeddingProvider(id) {
|
|
8332
8251
|
try {
|
|
8333
|
-
const data = await this.fetch.put(
|
|
8252
|
+
const data = await this.fetch.put(
|
|
8253
|
+
`/api/v1/admin/ai/providers/${id}/embedding`,
|
|
8254
|
+
{}
|
|
8255
|
+
);
|
|
8334
8256
|
return { data, error: null };
|
|
8335
8257
|
} catch (error) {
|
|
8336
8258
|
return { data: null, error };
|
|
8337
8259
|
}
|
|
8338
8260
|
}
|
|
8339
8261
|
/**
|
|
8340
|
-
* Clear
|
|
8262
|
+
* Clear the embedding provider assignment for a provider
|
|
8341
8263
|
*
|
|
8342
|
-
* @param id - Provider ID
|
|
8264
|
+
* @param id - Provider ID
|
|
8343
8265
|
* @returns Promise resolving to { data, error } tuple
|
|
8344
|
-
*
|
|
8345
|
-
* @example
|
|
8346
|
-
* ```typescript
|
|
8347
|
-
* const { data, error } = await client.admin.ai.clearEmbeddingProvider('uuid')
|
|
8348
|
-
* ```
|
|
8349
8266
|
*/
|
|
8350
8267
|
async clearEmbeddingProvider(id) {
|
|
8351
8268
|
try {
|
|
@@ -8358,73 +8275,51 @@ var FluxbaseAdminAI = class {
|
|
|
8358
8275
|
}
|
|
8359
8276
|
}
|
|
8360
8277
|
// ============================================================================
|
|
8361
|
-
// KNOWLEDGE BASE
|
|
8278
|
+
// CHATBOT KNOWLEDGE BASE LINKING
|
|
8362
8279
|
// ============================================================================
|
|
8363
8280
|
/**
|
|
8364
|
-
* List
|
|
8281
|
+
* List knowledge bases linked to a chatbot
|
|
8365
8282
|
*
|
|
8366
|
-
* @
|
|
8283
|
+
* @param chatbotId - Chatbot ID
|
|
8284
|
+
* @returns Promise resolving to { data, error } tuple with linked knowledge bases
|
|
8367
8285
|
*
|
|
8368
8286
|
* @example
|
|
8369
8287
|
* ```typescript
|
|
8370
|
-
* const { data, error } = await client.admin.ai.
|
|
8288
|
+
* const { data, error } = await client.admin.ai.listChatbotKnowledgeBases('chatbot-uuid')
|
|
8371
8289
|
* if (data) {
|
|
8372
|
-
* console.log('
|
|
8290
|
+
* console.log('Linked KBs:', data.map(l => l.knowledge_base_id))
|
|
8373
8291
|
* }
|
|
8374
8292
|
* ```
|
|
8375
8293
|
*/
|
|
8376
|
-
async
|
|
8294
|
+
async listChatbotKnowledgeBases(chatbotId) {
|
|
8377
8295
|
try {
|
|
8378
|
-
const response = await this.fetch.get(
|
|
8296
|
+
const response = await this.fetch.get(`/api/v1/admin/ai/chatbots/${chatbotId}/knowledge-bases`);
|
|
8379
8297
|
return { data: response.knowledge_bases || [], error: null };
|
|
8380
8298
|
} catch (error) {
|
|
8381
8299
|
return { data: null, error };
|
|
8382
8300
|
}
|
|
8383
8301
|
}
|
|
8384
8302
|
/**
|
|
8385
|
-
*
|
|
8386
|
-
*
|
|
8387
|
-
* @param id - Knowledge base ID
|
|
8388
|
-
* @returns Promise resolving to { data, error } tuple with knowledge base details
|
|
8389
|
-
*
|
|
8390
|
-
* @example
|
|
8391
|
-
* ```typescript
|
|
8392
|
-
* const { data, error } = await client.admin.ai.getKnowledgeBase('uuid')
|
|
8393
|
-
* if (data) {
|
|
8394
|
-
* console.log('Knowledge base:', data.name)
|
|
8395
|
-
* }
|
|
8396
|
-
* ```
|
|
8397
|
-
*/
|
|
8398
|
-
async getKnowledgeBase(id) {
|
|
8399
|
-
try {
|
|
8400
|
-
const data = await this.fetch.get(
|
|
8401
|
-
`/api/v1/admin/ai/knowledge-bases/${id}`
|
|
8402
|
-
);
|
|
8403
|
-
return { data, error: null };
|
|
8404
|
-
} catch (error) {
|
|
8405
|
-
return { data: null, error };
|
|
8406
|
-
}
|
|
8407
|
-
}
|
|
8408
|
-
/**
|
|
8409
|
-
* Create a new knowledge base
|
|
8303
|
+
* Link a knowledge base to a chatbot
|
|
8410
8304
|
*
|
|
8411
|
-
* @param
|
|
8412
|
-
* @
|
|
8305
|
+
* @param chatbotId - Chatbot ID
|
|
8306
|
+
* @param request - Link configuration
|
|
8307
|
+
* @returns Promise resolving to { data, error } tuple with link details
|
|
8413
8308
|
*
|
|
8414
8309
|
* @example
|
|
8415
8310
|
* ```typescript
|
|
8416
|
-
* const { data, error } = await client.admin.ai.
|
|
8417
|
-
*
|
|
8418
|
-
*
|
|
8419
|
-
*
|
|
8420
|
-
*
|
|
8311
|
+
* const { data, error } = await client.admin.ai.linkKnowledgeBase('chatbot-uuid', {
|
|
8312
|
+
* knowledge_base_id: 'kb-uuid',
|
|
8313
|
+
* priority: 1,
|
|
8314
|
+
* max_chunks: 5,
|
|
8315
|
+
* similarity_threshold: 0.7,
|
|
8421
8316
|
* })
|
|
8422
8317
|
* ```
|
|
8423
8318
|
*/
|
|
8424
|
-
async
|
|
8319
|
+
async linkKnowledgeBase(chatbotId, request) {
|
|
8425
8320
|
try {
|
|
8426
8321
|
const data = await this.fetch.post(
|
|
8427
|
-
|
|
8322
|
+
`/api/v1/admin/ai/chatbots/${chatbotId}/knowledge-bases`,
|
|
8428
8323
|
request
|
|
8429
8324
|
);
|
|
8430
8325
|
return { data, error: null };
|
|
@@ -8433,24 +8328,26 @@ var FluxbaseAdminAI = class {
|
|
|
8433
8328
|
}
|
|
8434
8329
|
}
|
|
8435
8330
|
/**
|
|
8436
|
-
* Update
|
|
8331
|
+
* Update a chatbot-knowledge base link
|
|
8437
8332
|
*
|
|
8438
|
-
* @param
|
|
8333
|
+
* @param chatbotId - Chatbot ID
|
|
8334
|
+
* @param knowledgeBaseId - Knowledge base ID
|
|
8439
8335
|
* @param updates - Fields to update
|
|
8440
|
-
* @returns Promise resolving to { data, error } tuple with updated
|
|
8336
|
+
* @returns Promise resolving to { data, error } tuple with updated link
|
|
8441
8337
|
*
|
|
8442
8338
|
* @example
|
|
8443
8339
|
* ```typescript
|
|
8444
|
-
* const { data, error } = await client.admin.ai.
|
|
8445
|
-
*
|
|
8446
|
-
*
|
|
8447
|
-
* }
|
|
8340
|
+
* const { data, error } = await client.admin.ai.updateChatbotKnowledgeBase(
|
|
8341
|
+
* 'chatbot-uuid',
|
|
8342
|
+
* 'kb-uuid',
|
|
8343
|
+
* { max_chunks: 10, enabled: true }
|
|
8344
|
+
* )
|
|
8448
8345
|
* ```
|
|
8449
8346
|
*/
|
|
8450
|
-
async
|
|
8347
|
+
async updateChatbotKnowledgeBase(chatbotId, knowledgeBaseId, updates) {
|
|
8451
8348
|
try {
|
|
8452
8349
|
const data = await this.fetch.put(
|
|
8453
|
-
`/api/v1/admin/ai/knowledge-bases/${
|
|
8350
|
+
`/api/v1/admin/ai/chatbots/${chatbotId}/knowledge-bases/${knowledgeBaseId}`,
|
|
8454
8351
|
updates
|
|
8455
8352
|
);
|
|
8456
8353
|
return { data, error: null };
|
|
@@ -8459,612 +8356,49 @@ var FluxbaseAdminAI = class {
|
|
|
8459
8356
|
}
|
|
8460
8357
|
}
|
|
8461
8358
|
/**
|
|
8462
|
-
*
|
|
8359
|
+
* Unlink a knowledge base from a chatbot
|
|
8463
8360
|
*
|
|
8464
|
-
* @param
|
|
8361
|
+
* @param chatbotId - Chatbot ID
|
|
8362
|
+
* @param knowledgeBaseId - Knowledge base ID
|
|
8465
8363
|
* @returns Promise resolving to { data, error } tuple
|
|
8466
8364
|
*
|
|
8467
8365
|
* @example
|
|
8468
8366
|
* ```typescript
|
|
8469
|
-
* const { data, error } = await client.admin.ai.
|
|
8367
|
+
* const { data, error } = await client.admin.ai.unlinkKnowledgeBase('chatbot-uuid', 'kb-uuid')
|
|
8470
8368
|
* ```
|
|
8471
8369
|
*/
|
|
8472
|
-
async
|
|
8370
|
+
async unlinkKnowledgeBase(chatbotId, knowledgeBaseId) {
|
|
8473
8371
|
try {
|
|
8474
|
-
await this.fetch.delete(
|
|
8372
|
+
await this.fetch.delete(
|
|
8373
|
+
`/api/v1/admin/ai/chatbots/${chatbotId}/knowledge-bases/${knowledgeBaseId}`
|
|
8374
|
+
);
|
|
8475
8375
|
return { data: null, error: null };
|
|
8476
8376
|
} catch (error) {
|
|
8477
8377
|
return { data: null, error };
|
|
8478
8378
|
}
|
|
8479
8379
|
}
|
|
8480
8380
|
// ============================================================================
|
|
8481
|
-
//
|
|
8381
|
+
// TABLE DETAILS
|
|
8482
8382
|
// ============================================================================
|
|
8483
8383
|
/**
|
|
8484
|
-
*
|
|
8384
|
+
* Get detailed table information including columns
|
|
8485
8385
|
*
|
|
8486
|
-
*
|
|
8487
|
-
*
|
|
8386
|
+
* Use this to discover available columns before exporting.
|
|
8387
|
+
*
|
|
8388
|
+
* @param schema - Schema name (e.g., 'public')
|
|
8389
|
+
* @param table - Table name
|
|
8390
|
+
* @returns Promise resolving to { data, error } tuple with table details
|
|
8488
8391
|
*
|
|
8489
8392
|
* @example
|
|
8490
8393
|
* ```typescript
|
|
8491
|
-
* const { data, error } = await client.admin.ai.
|
|
8394
|
+
* const { data, error } = await client.admin.ai.getTableDetails('public', 'users')
|
|
8492
8395
|
* if (data) {
|
|
8493
|
-
* console.log('
|
|
8396
|
+
* console.log('Columns:', data.columns.map(c => c.name))
|
|
8397
|
+
* console.log('Primary key:', data.primary_key)
|
|
8494
8398
|
* }
|
|
8495
8399
|
* ```
|
|
8496
8400
|
*/
|
|
8497
|
-
async
|
|
8498
|
-
try {
|
|
8499
|
-
const response = await this.fetch.get(`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/documents`);
|
|
8500
|
-
return { data: response.documents || [], error: null };
|
|
8501
|
-
} catch (error) {
|
|
8502
|
-
return { data: null, error };
|
|
8503
|
-
}
|
|
8504
|
-
}
|
|
8505
|
-
/**
|
|
8506
|
-
* Get a specific document
|
|
8507
|
-
*
|
|
8508
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
8509
|
-
* @param documentId - Document ID
|
|
8510
|
-
* @returns Promise resolving to { data, error } tuple with document details
|
|
8511
|
-
*
|
|
8512
|
-
* @example
|
|
8513
|
-
* ```typescript
|
|
8514
|
-
* const { data, error } = await client.admin.ai.getDocument('kb-uuid', 'doc-uuid')
|
|
8515
|
-
* ```
|
|
8516
|
-
*/
|
|
8517
|
-
async getDocument(knowledgeBaseId, documentId) {
|
|
8518
|
-
try {
|
|
8519
|
-
const data = await this.fetch.get(
|
|
8520
|
-
`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/documents/${documentId}`
|
|
8521
|
-
);
|
|
8522
|
-
return { data, error: null };
|
|
8523
|
-
} catch (error) {
|
|
8524
|
-
return { data: null, error };
|
|
8525
|
-
}
|
|
8526
|
-
}
|
|
8527
|
-
/**
|
|
8528
|
-
* Add a document to a knowledge base
|
|
8529
|
-
*
|
|
8530
|
-
* Document will be chunked and embedded asynchronously.
|
|
8531
|
-
*
|
|
8532
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
8533
|
-
* @param request - Document content and metadata
|
|
8534
|
-
* @returns Promise resolving to { data, error } tuple with document ID
|
|
8535
|
-
*
|
|
8536
|
-
* @example
|
|
8537
|
-
* ```typescript
|
|
8538
|
-
* const { data, error } = await client.admin.ai.addDocument('kb-uuid', {
|
|
8539
|
-
* title: 'Getting Started Guide',
|
|
8540
|
-
* content: 'This is the content of the document...',
|
|
8541
|
-
* metadata: { category: 'guides' },
|
|
8542
|
-
* })
|
|
8543
|
-
* if (data) {
|
|
8544
|
-
* console.log('Document ID:', data.document_id)
|
|
8545
|
-
* }
|
|
8546
|
-
* ```
|
|
8547
|
-
*/
|
|
8548
|
-
async addDocument(knowledgeBaseId, request) {
|
|
8549
|
-
try {
|
|
8550
|
-
const data = await this.fetch.post(
|
|
8551
|
-
`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/documents`,
|
|
8552
|
-
request
|
|
8553
|
-
);
|
|
8554
|
-
return { data, error: null };
|
|
8555
|
-
} catch (error) {
|
|
8556
|
-
return { data: null, error };
|
|
8557
|
-
}
|
|
8558
|
-
}
|
|
8559
|
-
/**
|
|
8560
|
-
* Upload a document file to a knowledge base
|
|
8561
|
-
*
|
|
8562
|
-
* Supported file types: PDF, TXT, MD, HTML, CSV, DOCX, XLSX, RTF, EPUB, JSON
|
|
8563
|
-
* Maximum file size: 50MB
|
|
8564
|
-
*
|
|
8565
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
8566
|
-
* @param file - File to upload (File or Blob)
|
|
8567
|
-
* @param title - Optional document title (defaults to filename without extension)
|
|
8568
|
-
* @returns Promise resolving to { data, error } tuple with upload result
|
|
8569
|
-
*
|
|
8570
|
-
* @example
|
|
8571
|
-
* ```typescript
|
|
8572
|
-
* // Browser
|
|
8573
|
-
* const fileInput = document.getElementById('file') as HTMLInputElement
|
|
8574
|
-
* const file = fileInput.files?.[0]
|
|
8575
|
-
* if (file) {
|
|
8576
|
-
* const { data, error } = await client.admin.ai.uploadDocument('kb-uuid', file)
|
|
8577
|
-
* if (data) {
|
|
8578
|
-
* console.log('Document ID:', data.document_id)
|
|
8579
|
-
* console.log('Extracted length:', data.extracted_length)
|
|
8580
|
-
* }
|
|
8581
|
-
* }
|
|
8582
|
-
*
|
|
8583
|
-
* // Node.js (with node-fetch or similar)
|
|
8584
|
-
* import { Blob } from 'buffer'
|
|
8585
|
-
* const content = await fs.readFile('document.pdf')
|
|
8586
|
-
* const blob = new Blob([content], { type: 'application/pdf' })
|
|
8587
|
-
* const { data, error } = await client.admin.ai.uploadDocument('kb-uuid', blob, 'My Document')
|
|
8588
|
-
* ```
|
|
8589
|
-
*/
|
|
8590
|
-
async uploadDocument(knowledgeBaseId, file, title) {
|
|
8591
|
-
try {
|
|
8592
|
-
const formData = new FormData();
|
|
8593
|
-
formData.append("file", file);
|
|
8594
|
-
if (title) {
|
|
8595
|
-
formData.append("title", title);
|
|
8596
|
-
}
|
|
8597
|
-
const data = await this.fetch.post(
|
|
8598
|
-
`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/documents/upload`,
|
|
8599
|
-
formData
|
|
8600
|
-
);
|
|
8601
|
-
return { data, error: null };
|
|
8602
|
-
} catch (error) {
|
|
8603
|
-
return { data: null, error };
|
|
8604
|
-
}
|
|
8605
|
-
}
|
|
8606
|
-
/**
|
|
8607
|
-
* Delete a document from a knowledge base
|
|
8608
|
-
*
|
|
8609
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
8610
|
-
* @param documentId - Document ID
|
|
8611
|
-
* @returns Promise resolving to { data, error } tuple
|
|
8612
|
-
*
|
|
8613
|
-
* @example
|
|
8614
|
-
* ```typescript
|
|
8615
|
-
* const { data, error } = await client.admin.ai.deleteDocument('kb-uuid', 'doc-uuid')
|
|
8616
|
-
* ```
|
|
8617
|
-
*/
|
|
8618
|
-
async deleteDocument(knowledgeBaseId, documentId) {
|
|
8619
|
-
try {
|
|
8620
|
-
await this.fetch.delete(
|
|
8621
|
-
`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/documents/${documentId}`
|
|
8622
|
-
);
|
|
8623
|
-
return { data: null, error: null };
|
|
8624
|
-
} catch (error) {
|
|
8625
|
-
return { data: null, error };
|
|
8626
|
-
}
|
|
8627
|
-
}
|
|
8628
|
-
/**
|
|
8629
|
-
* Search a knowledge base
|
|
8630
|
-
*
|
|
8631
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
8632
|
-
* @param query - Search query
|
|
8633
|
-
* @param options - Search options
|
|
8634
|
-
* @returns Promise resolving to { data, error } tuple with search results
|
|
8635
|
-
*
|
|
8636
|
-
* @example
|
|
8637
|
-
* ```typescript
|
|
8638
|
-
* const { data, error } = await client.admin.ai.searchKnowledgeBase('kb-uuid', 'how to reset password', {
|
|
8639
|
-
* max_chunks: 5,
|
|
8640
|
-
* threshold: 0.7,
|
|
8641
|
-
* })
|
|
8642
|
-
* if (data) {
|
|
8643
|
-
* console.log('Results:', data.results.map(r => r.content))
|
|
8644
|
-
* }
|
|
8645
|
-
* ```
|
|
8646
|
-
*/
|
|
8647
|
-
async searchKnowledgeBase(knowledgeBaseId, query, options) {
|
|
8648
|
-
try {
|
|
8649
|
-
const data = await this.fetch.post(
|
|
8650
|
-
`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/search`,
|
|
8651
|
-
{
|
|
8652
|
-
query,
|
|
8653
|
-
max_chunks: options?.max_chunks,
|
|
8654
|
-
threshold: options?.threshold
|
|
8655
|
-
}
|
|
8656
|
-
);
|
|
8657
|
-
return { data, error: null };
|
|
8658
|
-
} catch (error) {
|
|
8659
|
-
return { data: null, error };
|
|
8660
|
-
}
|
|
8661
|
-
}
|
|
8662
|
-
// ============================================================================
|
|
8663
|
-
// CHATBOT KNOWLEDGE BASE LINKING
|
|
8664
|
-
// ============================================================================
|
|
8665
|
-
/**
|
|
8666
|
-
* List knowledge bases linked to a chatbot
|
|
8667
|
-
*
|
|
8668
|
-
* @param chatbotId - Chatbot ID
|
|
8669
|
-
* @returns Promise resolving to { data, error } tuple with linked knowledge bases
|
|
8670
|
-
*
|
|
8671
|
-
* @example
|
|
8672
|
-
* ```typescript
|
|
8673
|
-
* const { data, error } = await client.admin.ai.listChatbotKnowledgeBases('chatbot-uuid')
|
|
8674
|
-
* if (data) {
|
|
8675
|
-
* console.log('Linked KBs:', data.map(l => l.knowledge_base_id))
|
|
8676
|
-
* }
|
|
8677
|
-
* ```
|
|
8678
|
-
*/
|
|
8679
|
-
async listChatbotKnowledgeBases(chatbotId) {
|
|
8680
|
-
try {
|
|
8681
|
-
const response = await this.fetch.get(`/api/v1/admin/ai/chatbots/${chatbotId}/knowledge-bases`);
|
|
8682
|
-
return { data: response.knowledge_bases || [], error: null };
|
|
8683
|
-
} catch (error) {
|
|
8684
|
-
return { data: null, error };
|
|
8685
|
-
}
|
|
8686
|
-
}
|
|
8687
|
-
/**
|
|
8688
|
-
* Link a knowledge base to a chatbot
|
|
8689
|
-
*
|
|
8690
|
-
* @param chatbotId - Chatbot ID
|
|
8691
|
-
* @param request - Link configuration
|
|
8692
|
-
* @returns Promise resolving to { data, error } tuple with link details
|
|
8693
|
-
*
|
|
8694
|
-
* @example
|
|
8695
|
-
* ```typescript
|
|
8696
|
-
* const { data, error } = await client.admin.ai.linkKnowledgeBase('chatbot-uuid', {
|
|
8697
|
-
* knowledge_base_id: 'kb-uuid',
|
|
8698
|
-
* priority: 1,
|
|
8699
|
-
* max_chunks: 5,
|
|
8700
|
-
* similarity_threshold: 0.7,
|
|
8701
|
-
* })
|
|
8702
|
-
* ```
|
|
8703
|
-
*/
|
|
8704
|
-
async linkKnowledgeBase(chatbotId, request) {
|
|
8705
|
-
try {
|
|
8706
|
-
const data = await this.fetch.post(
|
|
8707
|
-
`/api/v1/admin/ai/chatbots/${chatbotId}/knowledge-bases`,
|
|
8708
|
-
request
|
|
8709
|
-
);
|
|
8710
|
-
return { data, error: null };
|
|
8711
|
-
} catch (error) {
|
|
8712
|
-
return { data: null, error };
|
|
8713
|
-
}
|
|
8714
|
-
}
|
|
8715
|
-
/**
|
|
8716
|
-
* Update a chatbot-knowledge base link
|
|
8717
|
-
*
|
|
8718
|
-
* @param chatbotId - Chatbot ID
|
|
8719
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
8720
|
-
* @param updates - Fields to update
|
|
8721
|
-
* @returns Promise resolving to { data, error } tuple with updated link
|
|
8722
|
-
*
|
|
8723
|
-
* @example
|
|
8724
|
-
* ```typescript
|
|
8725
|
-
* const { data, error } = await client.admin.ai.updateChatbotKnowledgeBase(
|
|
8726
|
-
* 'chatbot-uuid',
|
|
8727
|
-
* 'kb-uuid',
|
|
8728
|
-
* { max_chunks: 10, enabled: true }
|
|
8729
|
-
* )
|
|
8730
|
-
* ```
|
|
8731
|
-
*/
|
|
8732
|
-
async updateChatbotKnowledgeBase(chatbotId, knowledgeBaseId, updates) {
|
|
8733
|
-
try {
|
|
8734
|
-
const data = await this.fetch.put(
|
|
8735
|
-
`/api/v1/admin/ai/chatbots/${chatbotId}/knowledge-bases/${knowledgeBaseId}`,
|
|
8736
|
-
updates
|
|
8737
|
-
);
|
|
8738
|
-
return { data, error: null };
|
|
8739
|
-
} catch (error) {
|
|
8740
|
-
return { data: null, error };
|
|
8741
|
-
}
|
|
8742
|
-
}
|
|
8743
|
-
/**
|
|
8744
|
-
* Unlink a knowledge base from a chatbot
|
|
8745
|
-
*
|
|
8746
|
-
* @param chatbotId - Chatbot ID
|
|
8747
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
8748
|
-
* @returns Promise resolving to { data, error } tuple
|
|
8749
|
-
*
|
|
8750
|
-
* @example
|
|
8751
|
-
* ```typescript
|
|
8752
|
-
* const { data, error } = await client.admin.ai.unlinkKnowledgeBase('chatbot-uuid', 'kb-uuid')
|
|
8753
|
-
* ```
|
|
8754
|
-
*/
|
|
8755
|
-
async unlinkKnowledgeBase(chatbotId, knowledgeBaseId) {
|
|
8756
|
-
try {
|
|
8757
|
-
await this.fetch.delete(
|
|
8758
|
-
`/api/v1/admin/ai/chatbots/${chatbotId}/knowledge-bases/${knowledgeBaseId}`
|
|
8759
|
-
);
|
|
8760
|
-
return { data: null, error: null };
|
|
8761
|
-
} catch (error) {
|
|
8762
|
-
return { data: null, error };
|
|
8763
|
-
}
|
|
8764
|
-
}
|
|
8765
|
-
// ============================================================================
|
|
8766
|
-
// DOCUMENT UPDATE AND BULK DELETE
|
|
8767
|
-
// ============================================================================
|
|
8768
|
-
/**
|
|
8769
|
-
* Update a document in a knowledge base
|
|
8770
|
-
*
|
|
8771
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
8772
|
-
* @param documentId - Document ID
|
|
8773
|
-
* @param updates - Fields to update
|
|
8774
|
-
* @returns Promise resolving to { data, error } tuple with updated document
|
|
8775
|
-
*
|
|
8776
|
-
* @example
|
|
8777
|
-
* ```typescript
|
|
8778
|
-
* const { data, error } = await client.admin.ai.updateDocument('kb-uuid', 'doc-uuid', {
|
|
8779
|
-
* title: 'Updated Title',
|
|
8780
|
-
* tags: ['updated', 'tag'],
|
|
8781
|
-
* metadata: { category: 'updated' },
|
|
8782
|
-
* })
|
|
8783
|
-
* ```
|
|
8784
|
-
*/
|
|
8785
|
-
async updateDocument(knowledgeBaseId, documentId, updates) {
|
|
8786
|
-
try {
|
|
8787
|
-
const data = await this.fetch.patch(
|
|
8788
|
-
`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/documents/${documentId}`,
|
|
8789
|
-
updates
|
|
8790
|
-
);
|
|
8791
|
-
return { data, error: null };
|
|
8792
|
-
} catch (error) {
|
|
8793
|
-
return { data: null, error };
|
|
8794
|
-
}
|
|
8795
|
-
}
|
|
8796
|
-
/**
|
|
8797
|
-
* Delete documents from a knowledge base by filter
|
|
8798
|
-
*
|
|
8799
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
8800
|
-
* @param filter - Filter criteria for deletion
|
|
8801
|
-
* @returns Promise resolving to { data, error } tuple with deletion count
|
|
8802
|
-
*
|
|
8803
|
-
* @example
|
|
8804
|
-
* ```typescript
|
|
8805
|
-
* // Delete by tags
|
|
8806
|
-
* const { data, error } = await client.admin.ai.deleteDocumentsByFilter('kb-uuid', {
|
|
8807
|
-
* tags: ['deprecated', 'archive'],
|
|
8808
|
-
* })
|
|
8809
|
-
*
|
|
8810
|
-
* // Delete by metadata
|
|
8811
|
-
* const { data, error } = await client.admin.ai.deleteDocumentsByFilter('kb-uuid', {
|
|
8812
|
-
* metadata: { source: 'legacy-system' },
|
|
8813
|
-
* })
|
|
8814
|
-
*
|
|
8815
|
-
* if (data) {
|
|
8816
|
-
* console.log(`Deleted ${data.deleted_count} documents`)
|
|
8817
|
-
* }
|
|
8818
|
-
* ```
|
|
8819
|
-
*/
|
|
8820
|
-
async deleteDocumentsByFilter(knowledgeBaseId, filter) {
|
|
8821
|
-
try {
|
|
8822
|
-
const data = await this.fetch.post(
|
|
8823
|
-
`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/documents/delete-by-filter`,
|
|
8824
|
-
filter
|
|
8825
|
-
);
|
|
8826
|
-
return { data, error: null };
|
|
8827
|
-
} catch (error) {
|
|
8828
|
-
return { data: null, error };
|
|
8829
|
-
}
|
|
8830
|
-
}
|
|
8831
|
-
// ============================================================================
|
|
8832
|
-
// KNOWLEDGE BASE CAPABILITIES
|
|
8833
|
-
// ============================================================================
|
|
8834
|
-
/**
|
|
8835
|
-
* Get knowledge base system capabilities
|
|
8836
|
-
*
|
|
8837
|
-
* Returns information about OCR support, supported file types, etc.
|
|
8838
|
-
*
|
|
8839
|
-
* @returns Promise resolving to { data, error } tuple with capabilities
|
|
8840
|
-
*
|
|
8841
|
-
* @example
|
|
8842
|
-
* ```typescript
|
|
8843
|
-
* const { data, error } = await client.admin.ai.getCapabilities()
|
|
8844
|
-
* if (data) {
|
|
8845
|
-
* console.log('OCR available:', data.ocr_available)
|
|
8846
|
-
* console.log('Supported types:', data.supported_file_types)
|
|
8847
|
-
* }
|
|
8848
|
-
* ```
|
|
8849
|
-
*/
|
|
8850
|
-
async getCapabilities() {
|
|
8851
|
-
try {
|
|
8852
|
-
const data = await this.fetch.get(
|
|
8853
|
-
"/api/v1/admin/ai/knowledge-bases/capabilities"
|
|
8854
|
-
);
|
|
8855
|
-
return { data, error: null };
|
|
8856
|
-
} catch (error) {
|
|
8857
|
-
return { data: null, error };
|
|
8858
|
-
}
|
|
8859
|
-
}
|
|
8860
|
-
// ============================================================================
|
|
8861
|
-
// KNOWLEDGE GRAPH / ENTITIES
|
|
8862
|
-
// ============================================================================
|
|
8863
|
-
/**
|
|
8864
|
-
* List entities in a knowledge base
|
|
8865
|
-
*
|
|
8866
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
8867
|
-
* @param entityType - Optional entity type filter
|
|
8868
|
-
* @returns Promise resolving to { data, error } tuple with array of entities
|
|
8869
|
-
*
|
|
8870
|
-
* @example
|
|
8871
|
-
* ```typescript
|
|
8872
|
-
* // List all entities
|
|
8873
|
-
* const { data, error } = await client.admin.ai.listEntities('kb-uuid')
|
|
8874
|
-
*
|
|
8875
|
-
* // Filter by type
|
|
8876
|
-
* const { data, error } = await client.admin.ai.listEntities('kb-uuid', 'person')
|
|
8877
|
-
*
|
|
8878
|
-
* if (data) {
|
|
8879
|
-
* console.log('Entities:', data.map(e => e.name))
|
|
8880
|
-
* }
|
|
8881
|
-
* ```
|
|
8882
|
-
*/
|
|
8883
|
-
async listEntities(knowledgeBaseId, entityType) {
|
|
8884
|
-
try {
|
|
8885
|
-
const params = entityType ? `?entity_type=${entityType}` : "";
|
|
8886
|
-
const response = await this.fetch.get(
|
|
8887
|
-
`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/entities${params}`
|
|
8888
|
-
);
|
|
8889
|
-
return { data: response.entities || [], error: null };
|
|
8890
|
-
} catch (error) {
|
|
8891
|
-
return { data: null, error };
|
|
8892
|
-
}
|
|
8893
|
-
}
|
|
8894
|
-
/**
|
|
8895
|
-
* Search for entities in a knowledge base
|
|
8896
|
-
*
|
|
8897
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
8898
|
-
* @param query - Search query
|
|
8899
|
-
* @param types - Optional entity type filters
|
|
8900
|
-
* @returns Promise resolving to { data, error } tuple with matching entities
|
|
8901
|
-
*
|
|
8902
|
-
* @example
|
|
8903
|
-
* ```typescript
|
|
8904
|
-
* // Search all entity types
|
|
8905
|
-
* const { data, error } = await client.admin.ai.searchEntities('kb-uuid', 'John')
|
|
8906
|
-
*
|
|
8907
|
-
* // Search specific types
|
|
8908
|
-
* const { data, error } = await client.admin.ai.searchEntities('kb-uuid', 'Apple', ['organization', 'product'])
|
|
8909
|
-
*
|
|
8910
|
-
* if (data) {
|
|
8911
|
-
* console.log('Found entities:', data.map(e => `${e.name} (${e.entity_type})`))
|
|
8912
|
-
* }
|
|
8913
|
-
* ```
|
|
8914
|
-
*/
|
|
8915
|
-
async searchEntities(knowledgeBaseId, query, types) {
|
|
8916
|
-
try {
|
|
8917
|
-
const params = new URLSearchParams({ query });
|
|
8918
|
-
if (types && types.length > 0) {
|
|
8919
|
-
params.append("types", types.join(","));
|
|
8920
|
-
}
|
|
8921
|
-
const response = await this.fetch.get(
|
|
8922
|
-
`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/entities/search?${params.toString()}`
|
|
8923
|
-
);
|
|
8924
|
-
return { data: response.entities || [], error: null };
|
|
8925
|
-
} catch (error) {
|
|
8926
|
-
return { data: null, error };
|
|
8927
|
-
}
|
|
8928
|
-
}
|
|
8929
|
-
/**
|
|
8930
|
-
* Get relationships for a specific entity
|
|
8931
|
-
*
|
|
8932
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
8933
|
-
* @param entityId - Entity ID
|
|
8934
|
-
* @returns Promise resolving to { data, error } tuple with entity relationships
|
|
8935
|
-
*
|
|
8936
|
-
* @example
|
|
8937
|
-
* ```typescript
|
|
8938
|
-
* const { data, error } = await client.admin.ai.getEntityRelationships('kb-uuid', 'entity-uuid')
|
|
8939
|
-
* if (data) {
|
|
8940
|
-
* console.log('Relationships:', data.map(r => `${r.relationship_type} -> ${r.target_entity?.name}`))
|
|
8941
|
-
* }
|
|
8942
|
-
* ```
|
|
8943
|
-
*/
|
|
8944
|
-
async getEntityRelationships(knowledgeBaseId, entityId) {
|
|
8945
|
-
try {
|
|
8946
|
-
const response = await this.fetch.get(
|
|
8947
|
-
`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/entities/${entityId}/relationships`
|
|
8948
|
-
);
|
|
8949
|
-
return { data: response.relationships || [], error: null };
|
|
8950
|
-
} catch (error) {
|
|
8951
|
-
return { data: null, error };
|
|
8952
|
-
}
|
|
8953
|
-
}
|
|
8954
|
-
/**
|
|
8955
|
-
* Get the knowledge graph for a knowledge base
|
|
8956
|
-
*
|
|
8957
|
-
* Returns all entities and relationships for visualization.
|
|
8958
|
-
*
|
|
8959
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
8960
|
-
* @returns Promise resolving to { data, error } tuple with graph data
|
|
8961
|
-
*
|
|
8962
|
-
* @example
|
|
8963
|
-
* ```typescript
|
|
8964
|
-
* const { data, error } = await client.admin.ai.getKnowledgeGraph('kb-uuid')
|
|
8965
|
-
* if (data) {
|
|
8966
|
-
* console.log('Graph:', data.entity_count, 'entities,', data.relationship_count, 'relationships')
|
|
8967
|
-
* // Use with visualization libraries like D3.js, Cytoscape.js, etc.
|
|
8968
|
-
* }
|
|
8969
|
-
* ```
|
|
8970
|
-
*/
|
|
8971
|
-
async getKnowledgeGraph(knowledgeBaseId) {
|
|
8972
|
-
try {
|
|
8973
|
-
const data = await this.fetch.get(
|
|
8974
|
-
`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/graph`
|
|
8975
|
-
);
|
|
8976
|
-
return { data, error: null };
|
|
8977
|
-
} catch (error) {
|
|
8978
|
-
return { data: null, error };
|
|
8979
|
-
}
|
|
8980
|
-
}
|
|
8981
|
-
// ============================================================================
|
|
8982
|
-
// KNOWLEDGE BASE REVERSE LOOKUP
|
|
8983
|
-
// ============================================================================
|
|
8984
|
-
/**
|
|
8985
|
-
* List all chatbots that use a specific knowledge base
|
|
8986
|
-
*
|
|
8987
|
-
* Reverse lookup to find which chatbots are linked to a knowledge base.
|
|
8988
|
-
*
|
|
8989
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
8990
|
-
* @returns Promise resolving to { data, error } tuple with array of chatbot summaries
|
|
8991
|
-
*
|
|
8992
|
-
* @example
|
|
8993
|
-
* ```typescript
|
|
8994
|
-
* const { data, error } = await client.admin.ai.listChatbotsUsingKB('kb-uuid')
|
|
8995
|
-
* if (data) {
|
|
8996
|
-
* console.log('Used by chatbots:', data.map(c => c.name))
|
|
8997
|
-
* }
|
|
8998
|
-
* ```
|
|
8999
|
-
*/
|
|
9000
|
-
async listChatbotsUsingKB(knowledgeBaseId) {
|
|
9001
|
-
try {
|
|
9002
|
-
const response = await this.fetch.get(`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/chatbots`);
|
|
9003
|
-
return { data: response.chatbots || [], error: null };
|
|
9004
|
-
} catch (error) {
|
|
9005
|
-
return { data: null, error };
|
|
9006
|
-
}
|
|
9007
|
-
}
|
|
9008
|
-
// ============================================================================
|
|
9009
|
-
// TABLE EXPORT
|
|
9010
|
-
// ============================================================================
|
|
9011
|
-
/**
|
|
9012
|
-
* Export a database table to a knowledge base
|
|
9013
|
-
*
|
|
9014
|
-
* The table schema will be exported as a markdown document and indexed.
|
|
9015
|
-
* Optionally filter which columns to export for security or relevance.
|
|
9016
|
-
*
|
|
9017
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
9018
|
-
* @param options - Export options including column selection
|
|
9019
|
-
* @returns Promise resolving to { data, error } tuple with export result
|
|
9020
|
-
*
|
|
9021
|
-
* @example
|
|
9022
|
-
* ```typescript
|
|
9023
|
-
* // Export all columns
|
|
9024
|
-
* const { data, error } = await client.admin.ai.exportTable('kb-uuid', {
|
|
9025
|
-
* schema: 'public',
|
|
9026
|
-
* table: 'users',
|
|
9027
|
-
* include_foreign_keys: true,
|
|
9028
|
-
* })
|
|
9029
|
-
*
|
|
9030
|
-
* // Export specific columns (recommended for sensitive data)
|
|
9031
|
-
* const { data, error } = await client.admin.ai.exportTable('kb-uuid', {
|
|
9032
|
-
* schema: 'public',
|
|
9033
|
-
* table: 'users',
|
|
9034
|
-
* columns: ['id', 'name', 'email', 'created_at'],
|
|
9035
|
-
* })
|
|
9036
|
-
* ```
|
|
9037
|
-
*/
|
|
9038
|
-
async exportTable(knowledgeBaseId, options) {
|
|
9039
|
-
try {
|
|
9040
|
-
const data = await this.fetch.post(
|
|
9041
|
-
`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/tables/export`,
|
|
9042
|
-
options
|
|
9043
|
-
);
|
|
9044
|
-
return { data, error: null };
|
|
9045
|
-
} catch (error) {
|
|
9046
|
-
return { data: null, error };
|
|
9047
|
-
}
|
|
9048
|
-
}
|
|
9049
|
-
/**
|
|
9050
|
-
* Get detailed table information including columns
|
|
9051
|
-
*
|
|
9052
|
-
* Use this to discover available columns before exporting.
|
|
9053
|
-
*
|
|
9054
|
-
* @param schema - Schema name (e.g., 'public')
|
|
9055
|
-
* @param table - Table name
|
|
9056
|
-
* @returns Promise resolving to { data, error } tuple with table details
|
|
9057
|
-
*
|
|
9058
|
-
* @example
|
|
9059
|
-
* ```typescript
|
|
9060
|
-
* const { data, error } = await client.admin.ai.getTableDetails('public', 'users')
|
|
9061
|
-
* if (data) {
|
|
9062
|
-
* console.log('Columns:', data.columns.map(c => c.name))
|
|
9063
|
-
* console.log('Primary key:', data.primary_key)
|
|
9064
|
-
* }
|
|
9065
|
-
* ```
|
|
9066
|
-
*/
|
|
9067
|
-
async getTableDetails(schema, table) {
|
|
8401
|
+
async getTableDetails(schema, table) {
|
|
9068
8402
|
try {
|
|
9069
8403
|
const data = await this.fetch.get(
|
|
9070
8404
|
`/api/v1/admin/ai/tables/${schema}/${table}`
|
|
@@ -9074,143 +8408,15 @@ var FluxbaseAdminAI = class {
|
|
|
9074
8408
|
return { data: null, error };
|
|
9075
8409
|
}
|
|
9076
8410
|
}
|
|
9077
|
-
// ============================================================================
|
|
9078
|
-
// TABLE EXPORT PRESETS
|
|
9079
|
-
// ============================================================================
|
|
9080
|
-
/**
|
|
9081
|
-
* Create a table export preset
|
|
9082
|
-
*
|
|
9083
|
-
* Saves a table export configuration for easy re-export. Use triggerTableExportSync
|
|
9084
|
-
* to re-export when the schema changes.
|
|
9085
|
-
*
|
|
9086
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
9087
|
-
* @param config - Export preset configuration
|
|
9088
|
-
* @returns Promise resolving to { data, error } tuple with created preset
|
|
9089
|
-
*
|
|
9090
|
-
* @example
|
|
9091
|
-
* ```typescript
|
|
9092
|
-
* const { data, error } = await client.admin.ai.createTableExportSync('kb-uuid', {
|
|
9093
|
-
* schema_name: 'public',
|
|
9094
|
-
* table_name: 'products',
|
|
9095
|
-
* columns: ['id', 'name', 'description', 'price'],
|
|
9096
|
-
* include_foreign_keys: true,
|
|
9097
|
-
* export_now: true, // Trigger initial export
|
|
9098
|
-
* })
|
|
9099
|
-
* ```
|
|
9100
|
-
*/
|
|
9101
|
-
async createTableExportSync(knowledgeBaseId, config) {
|
|
9102
|
-
try {
|
|
9103
|
-
const data = await this.fetch.post(
|
|
9104
|
-
`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/sync-configs`,
|
|
9105
|
-
config
|
|
9106
|
-
);
|
|
9107
|
-
return { data, error: null };
|
|
9108
|
-
} catch (error) {
|
|
9109
|
-
return { data: null, error };
|
|
9110
|
-
}
|
|
9111
|
-
}
|
|
9112
|
-
/**
|
|
9113
|
-
* List table export presets for a knowledge base
|
|
9114
|
-
*
|
|
9115
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
9116
|
-
* @returns Promise resolving to { data, error } tuple with array of presets
|
|
9117
|
-
*
|
|
9118
|
-
* @example
|
|
9119
|
-
* ```typescript
|
|
9120
|
-
* const { data, error } = await client.admin.ai.listTableExportSyncs('kb-uuid')
|
|
9121
|
-
* if (data) {
|
|
9122
|
-
* data.forEach(config => {
|
|
9123
|
-
* console.log(`${config.schema_name}.${config.table_name}`)
|
|
9124
|
-
* })
|
|
9125
|
-
* }
|
|
9126
|
-
* ```
|
|
9127
|
-
*/
|
|
9128
|
-
async listTableExportSyncs(knowledgeBaseId) {
|
|
9129
|
-
try {
|
|
9130
|
-
const response = await this.fetch.get(`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/sync-configs`);
|
|
9131
|
-
return { data: response.sync_configs || [], error: null };
|
|
9132
|
-
} catch (error) {
|
|
9133
|
-
return { data: null, error };
|
|
9134
|
-
}
|
|
9135
|
-
}
|
|
9136
|
-
/**
|
|
9137
|
-
* Update a table export preset
|
|
9138
|
-
*
|
|
9139
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
9140
|
-
* @param syncId - Preset ID
|
|
9141
|
-
* @param updates - Fields to update
|
|
9142
|
-
* @returns Promise resolving to { data, error } tuple with updated preset
|
|
9143
|
-
*
|
|
9144
|
-
* @example
|
|
9145
|
-
* ```typescript
|
|
9146
|
-
* const { data, error } = await client.admin.ai.updateTableExportSync('kb-uuid', 'sync-id', {
|
|
9147
|
-
* columns: ['id', 'name', 'email', 'updated_at'],
|
|
9148
|
-
* })
|
|
9149
|
-
* ```
|
|
9150
|
-
*/
|
|
9151
|
-
async updateTableExportSync(knowledgeBaseId, syncId, updates) {
|
|
9152
|
-
try {
|
|
9153
|
-
const data = await this.fetch.patch(
|
|
9154
|
-
`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/sync-configs/${syncId}`,
|
|
9155
|
-
updates
|
|
9156
|
-
);
|
|
9157
|
-
return { data, error: null };
|
|
9158
|
-
} catch (error) {
|
|
9159
|
-
return { data: null, error };
|
|
9160
|
-
}
|
|
9161
|
-
}
|
|
9162
|
-
/**
|
|
9163
|
-
* Delete a table export sync configuration
|
|
9164
|
-
*
|
|
9165
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
9166
|
-
* @param syncId - Sync config ID
|
|
9167
|
-
* @returns Promise resolving to { data, error } tuple
|
|
9168
|
-
*
|
|
9169
|
-
* @example
|
|
9170
|
-
* ```typescript
|
|
9171
|
-
* const { data, error } = await client.admin.ai.deleteTableExportSync('kb-uuid', 'sync-id')
|
|
9172
|
-
* ```
|
|
9173
|
-
*/
|
|
9174
|
-
async deleteTableExportSync(knowledgeBaseId, syncId) {
|
|
9175
|
-
try {
|
|
9176
|
-
await this.fetch.delete(
|
|
9177
|
-
`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/sync-configs/${syncId}`
|
|
9178
|
-
);
|
|
9179
|
-
return { data: null, error: null };
|
|
9180
|
-
} catch (error) {
|
|
9181
|
-
return { data: null, error };
|
|
9182
|
-
}
|
|
9183
|
-
}
|
|
9184
|
-
/**
|
|
9185
|
-
* Manually trigger a table export sync
|
|
9186
|
-
*
|
|
9187
|
-
* Immediately re-exports the table to the knowledge base,
|
|
9188
|
-
* regardless of the sync mode.
|
|
9189
|
-
*
|
|
9190
|
-
* @param knowledgeBaseId - Knowledge base ID
|
|
9191
|
-
* @param syncId - Sync config ID
|
|
9192
|
-
* @returns Promise resolving to { data, error } tuple with export result
|
|
9193
|
-
*
|
|
9194
|
-
* @example
|
|
9195
|
-
* ```typescript
|
|
9196
|
-
* const { data, error } = await client.admin.ai.triggerTableExportSync('kb-uuid', 'sync-id')
|
|
9197
|
-
* if (data) {
|
|
9198
|
-
* console.log('Exported document:', data.document_id)
|
|
9199
|
-
* }
|
|
9200
|
-
* ```
|
|
9201
|
-
*/
|
|
9202
|
-
async triggerTableExportSync(knowledgeBaseId, syncId) {
|
|
9203
|
-
try {
|
|
9204
|
-
const data = await this.fetch.post(
|
|
9205
|
-
`/api/v1/admin/ai/knowledge-bases/${knowledgeBaseId}/sync-configs/${syncId}/trigger`,
|
|
9206
|
-
{}
|
|
9207
|
-
);
|
|
9208
|
-
return { data, error: null };
|
|
9209
|
-
} catch (error) {
|
|
9210
|
-
return { data: null, error };
|
|
9211
|
-
}
|
|
9212
|
-
}
|
|
9213
8411
|
};
|
|
8412
|
+
function normalizeConfig(config) {
|
|
8413
|
+
const result = {};
|
|
8414
|
+
for (const [key, value] of Object.entries(config)) {
|
|
8415
|
+
if (value === void 0 || value === null) continue;
|
|
8416
|
+
result[key] = String(value);
|
|
8417
|
+
}
|
|
8418
|
+
return result;
|
|
8419
|
+
}
|
|
9214
8420
|
|
|
9215
8421
|
// src/admin-rpc.ts
|
|
9216
8422
|
var FluxbaseAdminRPC = class {
|
|
@@ -9725,19 +8931,18 @@ var FluxbaseAdminStorage = class {
|
|
|
9725
8931
|
});
|
|
9726
8932
|
}
|
|
9727
8933
|
/**
|
|
9728
|
-
* Generate a signed URL for
|
|
8934
|
+
* Generate a signed URL for a private object
|
|
9729
8935
|
*
|
|
9730
8936
|
* @param bucket - Bucket name
|
|
9731
8937
|
* @param key - Object key (path)
|
|
9732
|
-
* @param expiresIn -
|
|
8938
|
+
* @param expiresIn - URL expiration time in seconds
|
|
9733
8939
|
* @returns Signed URL and expiration info
|
|
9734
8940
|
*
|
|
9735
8941
|
* @example
|
|
9736
8942
|
* ```typescript
|
|
9737
8943
|
* const { data } = await admin.storage.generateSignedUrl('my-bucket', 'file.pdf', 3600);
|
|
9738
8944
|
* if (data) {
|
|
9739
|
-
*
|
|
9740
|
-
* console.log(`Expires in: ${data.expires_in} seconds`);
|
|
8945
|
+
* window.open(data.url);
|
|
9741
8946
|
* }
|
|
9742
8947
|
* ```
|
|
9743
8948
|
*/
|
|
@@ -9745,7 +8950,7 @@ var FluxbaseAdminStorage = class {
|
|
|
9745
8950
|
return wrapAsync(async () => {
|
|
9746
8951
|
const encodedKey = key.split("/").map((s) => encodeURIComponent(s)).join("/");
|
|
9747
8952
|
return await this.fetch.post(
|
|
9748
|
-
`/api/v1/storage/${encodeURIComponent(bucket)}/${encodedKey}
|
|
8953
|
+
`/api/v1/storage/${encodeURIComponent(bucket)}/sign/${encodedKey}`,
|
|
9749
8954
|
{ expires_in: expiresIn }
|
|
9750
8955
|
);
|
|
9751
8956
|
});
|
|
@@ -9931,7 +9136,7 @@ var ServiceKeysManager = class {
|
|
|
9931
9136
|
*/
|
|
9932
9137
|
async list() {
|
|
9933
9138
|
try {
|
|
9934
|
-
const data = await this.fetch.get("/service-keys");
|
|
9139
|
+
const data = await this.fetch.get("/api/v1/admin/service-keys");
|
|
9935
9140
|
return { data, error: null };
|
|
9936
9141
|
} catch (error) {
|
|
9937
9142
|
return { data: null, error };
|
|
@@ -9950,7 +9155,7 @@ var ServiceKeysManager = class {
|
|
|
9950
9155
|
*/
|
|
9951
9156
|
async get(id) {
|
|
9952
9157
|
try {
|
|
9953
|
-
const data = await this.fetch.get(`/service-keys/${id}`);
|
|
9158
|
+
const data = await this.fetch.get(`/api/v1/admin/service-keys/${id}`);
|
|
9954
9159
|
return { data, error: null };
|
|
9955
9160
|
} catch (error) {
|
|
9956
9161
|
return { data: null, error };
|
|
@@ -9982,7 +9187,7 @@ var ServiceKeysManager = class {
|
|
|
9982
9187
|
async create(request) {
|
|
9983
9188
|
try {
|
|
9984
9189
|
const data = await this.fetch.post(
|
|
9985
|
-
"/service-keys",
|
|
9190
|
+
"/api/v1/admin/service-keys",
|
|
9986
9191
|
request
|
|
9987
9192
|
);
|
|
9988
9193
|
return { data, error: null };
|
|
@@ -10008,7 +9213,7 @@ var ServiceKeysManager = class {
|
|
|
10008
9213
|
async update(id, request) {
|
|
10009
9214
|
try {
|
|
10010
9215
|
const data = await this.fetch.put(
|
|
10011
|
-
`/service-keys/${id}`,
|
|
9216
|
+
`/api/v1/admin/service-keys/${id}`,
|
|
10012
9217
|
request
|
|
10013
9218
|
);
|
|
10014
9219
|
return { data, error: null };
|
|
@@ -10029,7 +9234,7 @@ var ServiceKeysManager = class {
|
|
|
10029
9234
|
*/
|
|
10030
9235
|
async delete(id) {
|
|
10031
9236
|
try {
|
|
10032
|
-
await this.fetch.delete(`/service-keys/${id}`);
|
|
9237
|
+
await this.fetch.delete(`/api/v1/admin/service-keys/${id}`);
|
|
10033
9238
|
return { error: null };
|
|
10034
9239
|
} catch (error) {
|
|
10035
9240
|
return { error };
|
|
@@ -10048,7 +9253,7 @@ var ServiceKeysManager = class {
|
|
|
10048
9253
|
*/
|
|
10049
9254
|
async disable(id) {
|
|
10050
9255
|
try {
|
|
10051
|
-
await this.fetch.post(`/service-keys/${id}/disable`, {});
|
|
9256
|
+
await this.fetch.post(`/api/v1/admin/service-keys/${id}/disable`, {});
|
|
10052
9257
|
return { error: null };
|
|
10053
9258
|
} catch (error) {
|
|
10054
9259
|
return { error };
|
|
@@ -10067,7 +9272,7 @@ var ServiceKeysManager = class {
|
|
|
10067
9272
|
*/
|
|
10068
9273
|
async enable(id) {
|
|
10069
9274
|
try {
|
|
10070
|
-
await this.fetch.post(`/service-keys/${id}/enable`, {});
|
|
9275
|
+
await this.fetch.post(`/api/v1/admin/service-keys/${id}/enable`, {});
|
|
10071
9276
|
return { error: null };
|
|
10072
9277
|
} catch (error) {
|
|
10073
9278
|
return { error };
|
|
@@ -10092,7 +9297,7 @@ var ServiceKeysManager = class {
|
|
|
10092
9297
|
async revoke(id, request) {
|
|
10093
9298
|
try {
|
|
10094
9299
|
const body = request?.reason ? new URLSearchParams({ reason: request.reason }) : {};
|
|
10095
|
-
await this.fetch.post(`/service-keys/${id}/revoke`, body);
|
|
9300
|
+
await this.fetch.post(`/api/v1/admin/service-keys/${id}/revoke`, body);
|
|
10096
9301
|
return { error: null };
|
|
10097
9302
|
} catch (error) {
|
|
10098
9303
|
return { error };
|
|
@@ -10122,7 +9327,7 @@ var ServiceKeysManager = class {
|
|
|
10122
9327
|
params.set("grace_period_hours", String(request.grace_period_hours));
|
|
10123
9328
|
}
|
|
10124
9329
|
const body = request?.grace_period_hours ? Object.fromEntries(params) : {};
|
|
10125
|
-
const data = await this.fetch.post(`/service-keys/${id}/deprecate`, body);
|
|
9330
|
+
const data = await this.fetch.post(`/api/v1/admin/service-keys/${id}/deprecate`, body);
|
|
10126
9331
|
return { data, error: null };
|
|
10127
9332
|
} catch (error) {
|
|
10128
9333
|
return { data: null, error };
|
|
@@ -10150,7 +9355,7 @@ var ServiceKeysManager = class {
|
|
|
10150
9355
|
async rotate(id) {
|
|
10151
9356
|
try {
|
|
10152
9357
|
const data = await this.fetch.post(
|
|
10153
|
-
`/service-keys/${id}/rotate`,
|
|
9358
|
+
`/api/v1/admin/service-keys/${id}/rotate`,
|
|
10154
9359
|
{}
|
|
10155
9360
|
);
|
|
10156
9361
|
return { data, error: null };
|
|
@@ -10171,7 +9376,7 @@ var ServiceKeysManager = class {
|
|
|
10171
9376
|
*/
|
|
10172
9377
|
async getRevocationHistory(id) {
|
|
10173
9378
|
try {
|
|
10174
|
-
const data = await this.fetch.get(`/service-keys/${id}/revocations`);
|
|
9379
|
+
const data = await this.fetch.get(`/api/v1/admin/service-keys/${id}/revocations`);
|
|
10175
9380
|
return { data, error: null };
|
|
10176
9381
|
} catch (error) {
|
|
10177
9382
|
return { data: null, error };
|
|
@@ -10243,31 +9448,6 @@ var FluxbaseAdmin = class {
|
|
|
10243
9448
|
});
|
|
10244
9449
|
}
|
|
10245
9450
|
// ============================================================================
|
|
10246
|
-
// Email
|
|
10247
|
-
// ============================================================================
|
|
10248
|
-
/**
|
|
10249
|
-
* Send an email
|
|
10250
|
-
*
|
|
10251
|
-
* @param request - Email details (to, subject, html/text)
|
|
10252
|
-
*
|
|
10253
|
-
* @example
|
|
10254
|
-
* ```typescript
|
|
10255
|
-
* const { error } = await admin.sendEmail({
|
|
10256
|
-
* to: 'user@example.com',
|
|
10257
|
-
* subject: 'Hello',
|
|
10258
|
-
* html: '<p>Your message here</p>'
|
|
10259
|
-
* });
|
|
10260
|
-
* if (!error) {
|
|
10261
|
-
* console.log('Email sent');
|
|
10262
|
-
* }
|
|
10263
|
-
* ```
|
|
10264
|
-
*/
|
|
10265
|
-
async sendEmail(request) {
|
|
10266
|
-
return wrapAsyncVoid(async () => {
|
|
10267
|
-
await this.fetch.post("/api/v1/admin/email/send", request);
|
|
10268
|
-
});
|
|
10269
|
-
}
|
|
10270
|
-
// ============================================================================
|
|
10271
9451
|
// Admin Authentication
|
|
10272
9452
|
// ============================================================================
|
|
10273
9453
|
/**
|
|
@@ -12039,7 +11219,7 @@ var FluxbaseTenant = class {
|
|
|
12039
11219
|
*/
|
|
12040
11220
|
async list() {
|
|
12041
11221
|
try {
|
|
12042
|
-
const data = await this.fetch.get("/tenants");
|
|
11222
|
+
const data = await this.fetch.get("/api/v1/admin/tenants");
|
|
12043
11223
|
return { data, error: null };
|
|
12044
11224
|
} catch (error) {
|
|
12045
11225
|
return { data: null, error };
|
|
@@ -12058,7 +11238,7 @@ var FluxbaseTenant = class {
|
|
|
12058
11238
|
*/
|
|
12059
11239
|
async listMine() {
|
|
12060
11240
|
try {
|
|
12061
|
-
const data = await this.fetch.get("/tenants/mine");
|
|
11241
|
+
const data = await this.fetch.get("/api/v1/admin/tenants/mine");
|
|
12062
11242
|
return { data, error: null };
|
|
12063
11243
|
} catch (error) {
|
|
12064
11244
|
return { data: null, error };
|
|
@@ -12077,7 +11257,7 @@ var FluxbaseTenant = class {
|
|
|
12077
11257
|
*/
|
|
12078
11258
|
async get(id) {
|
|
12079
11259
|
try {
|
|
12080
|
-
const data = await this.fetch.get(`/tenants/${id}`);
|
|
11260
|
+
const data = await this.fetch.get(`/api/v1/admin/tenants/${id}`);
|
|
12081
11261
|
return { data, error: null };
|
|
12082
11262
|
} catch (error) {
|
|
12083
11263
|
return { data: null, error };
|
|
@@ -12102,7 +11282,7 @@ var FluxbaseTenant = class {
|
|
|
12102
11282
|
*/
|
|
12103
11283
|
async create(options) {
|
|
12104
11284
|
try {
|
|
12105
|
-
const data = await this.fetch.post("/tenants", options);
|
|
11285
|
+
const data = await this.fetch.post("/api/v1/admin/tenants", options);
|
|
12106
11286
|
return { data, error: null };
|
|
12107
11287
|
} catch (error) {
|
|
12108
11288
|
return { data: null, error };
|
|
@@ -12124,7 +11304,7 @@ var FluxbaseTenant = class {
|
|
|
12124
11304
|
*/
|
|
12125
11305
|
async update(id, options) {
|
|
12126
11306
|
try {
|
|
12127
|
-
const data = await this.fetch.patch(`/tenants/${id}`, options);
|
|
11307
|
+
const data = await this.fetch.patch(`/api/v1/admin/tenants/${id}`, options);
|
|
12128
11308
|
return { data, error: null };
|
|
12129
11309
|
} catch (error) {
|
|
12130
11310
|
return { data: null, error };
|
|
@@ -12146,7 +11326,7 @@ var FluxbaseTenant = class {
|
|
|
12146
11326
|
*/
|
|
12147
11327
|
async delete(id) {
|
|
12148
11328
|
try {
|
|
12149
|
-
await this.fetch.delete(`/tenants/${id}`);
|
|
11329
|
+
await this.fetch.delete(`/api/v1/admin/tenants/${id}`);
|
|
12150
11330
|
return { data: void 0, error: null };
|
|
12151
11331
|
} catch (error) {
|
|
12152
11332
|
return { data: null, error };
|
|
@@ -12167,7 +11347,7 @@ var FluxbaseTenant = class {
|
|
|
12167
11347
|
async migrate(id) {
|
|
12168
11348
|
try {
|
|
12169
11349
|
const data = await this.fetch.post(
|
|
12170
|
-
`/tenants/${id}/migrate`,
|
|
11350
|
+
`/api/v1/admin/tenants/${id}/migrate`,
|
|
12171
11351
|
{}
|
|
12172
11352
|
);
|
|
12173
11353
|
return { data, error: null };
|
|
@@ -12190,7 +11370,7 @@ var FluxbaseTenant = class {
|
|
|
12190
11370
|
async listAdmins(tenantId) {
|
|
12191
11371
|
try {
|
|
12192
11372
|
const data = await this.fetch.get(
|
|
12193
|
-
`/tenants/${tenantId}/admins`
|
|
11373
|
+
`/api/v1/admin/tenants/${tenantId}/admins`
|
|
12194
11374
|
);
|
|
12195
11375
|
return { data, error: null };
|
|
12196
11376
|
} catch (error) {
|
|
@@ -12214,7 +11394,7 @@ var FluxbaseTenant = class {
|
|
|
12214
11394
|
async assignAdmin(tenantId, options) {
|
|
12215
11395
|
try {
|
|
12216
11396
|
const data = await this.fetch.post(
|
|
12217
|
-
`/tenants/${tenantId}/admins`,
|
|
11397
|
+
`/api/v1/admin/tenants/${tenantId}/admins`,
|
|
12218
11398
|
options
|
|
12219
11399
|
);
|
|
12220
11400
|
return { data, error: null };
|
|
@@ -12236,7 +11416,7 @@ var FluxbaseTenant = class {
|
|
|
12236
11416
|
*/
|
|
12237
11417
|
async removeAdmin(tenantId, userId) {
|
|
12238
11418
|
try {
|
|
12239
|
-
await this.fetch.delete(`/tenants/${tenantId}/admins/${userId}`);
|
|
11419
|
+
await this.fetch.delete(`/api/v1/admin/tenants/${tenantId}/admins/${userId}`);
|
|
12240
11420
|
return { data: void 0, error: null };
|
|
12241
11421
|
} catch (error) {
|
|
12242
11422
|
return { data: null, error };
|