feat: add native OAuth/OIDC authentication support

Add OAuthConfig and OAuthHeaderProvider to the Rust core with support
for five OAuth flows: ClientCredentials, AuthorizationCodePKCE,
DeviceCode, AzureManagedIdentity, and WorkloadIdentity. Token
acquisition and auto-refresh happen entirely in Rust.

Python and TypeScript expose OAuthConfig as a plain config object that
maps to the Rust header provider via FFI — no dynamic callbacks cross
the language boundary.

ConnectBuilder gains an oauth_config() method that replaces the API key
requirement when OAuth is configured.
This commit is contained in:
Jack Ye
2026-05-12 12:53:19 -07:00
parent 650f173236
commit b4f2300f80
58 changed files with 1859 additions and 449 deletions

View File

@@ -25,8 +25,7 @@ new BooleanQuery(queries): BooleanQuery
Creates an instance of BooleanQuery.
#### Parameters
* **queries**: [[`Occur`](../enumerations/Occur.md), [`FullTextQuery`](../interfaces/FullTextQuery.md)][]
* **queries**: [[`Occur`](../enumerations/Occur.md), [`FullTextQuery`](../interfaces/FullTextQuery.md)][]
An array of (Occur, FullTextQuery objects) to combine.
Occur specifies whether the query must match, or should match.

View File

@@ -31,18 +31,14 @@ but penalizes those that match the negative query.
the penalty is controlled by the `negativeBoost` parameter.
#### Parameters
* **positive**: [`FullTextQuery`](../interfaces/FullTextQuery.md)
* **positive**: [`FullTextQuery`](../interfaces/FullTextQuery.md)
The positive query that boosts the relevance score.
* **negative**: [`FullTextQuery`](../interfaces/FullTextQuery.md)
* **negative**: [`FullTextQuery`](../interfaces/FullTextQuery.md)
The negative query that reduces the relevance score.
* **options?**
* **options?**
Optional parameters for the boost query.
- `negativeBoost`: The boost factor for the negative query (default is 0.0).
* **options.negativeBoost?**: `number`
* **options.negativeBoost?**: `number`
#### Returns

View File

@@ -42,26 +42,19 @@ both the source and cloned tables to evolve independently while initially
sharing the same data, deletion, and index files.
#### Parameters
* **targetTableName**: `string`
* **targetTableName**: `string`
The name of the target table to create.
* **sourceUri**: `string`
* **sourceUri**: `string`
The URI of the source table to clone from.
* **options?**
* **options?**
Clone options.
* **options.isShallow?**: `boolean`
* **options.isShallow?**: `boolean`
Whether to perform a shallow clone (defaults to true).
* **options.sourceTag?**: `string`
* **options.sourceTag?**: `string`
The tag of the source table to clone.
* **options.sourceVersion?**: `number`
* **options.sourceVersion?**: `number`
The version of the source table to clone.
* **options.targetNamespacePath?**: `string`[]
* **options.targetNamespacePath?**: `string`[]
The namespace path for the target table (defaults to root namespace).
#### Returns
@@ -102,14 +95,11 @@ abstract createEmptyTable(
Creates a new empty Table
##### Parameters
* **name**: `string`
* **name**: `string`
The name of the table.
* **schema**: [`SchemaLike`](../type-aliases/SchemaLike.md)
* **schema**: [`SchemaLike`](../type-aliases/SchemaLike.md)
The schema of the table
* **options?**: `Partial`<[`CreateTableOptions`](../interfaces/CreateTableOptions.md)>
* **options?**: `Partial`<[`CreateTableOptions`](../interfaces/CreateTableOptions.md)>
Additional options (backwards compatibility)
##### Returns
@@ -129,17 +119,13 @@ abstract createEmptyTable(
Creates a new empty Table
##### Parameters
* **name**: `string`
* **name**: `string`
The name of the table.
* **schema**: [`SchemaLike`](../type-aliases/SchemaLike.md)
* **schema**: [`SchemaLike`](../type-aliases/SchemaLike.md)
The schema of the table
* **namespacePath?**: `string`[]
* **namespacePath?**: `string`[]
The namespace path to create the table in (defaults to root namespace)
* **options?**: `Partial`<[`CreateTableOptions`](../interfaces/CreateTableOptions.md)>
* **options?**: `Partial`<[`CreateTableOptions`](../interfaces/CreateTableOptions.md)>
Additional options
##### Returns
@@ -159,11 +145,9 @@ abstract createTable(options, namespacePath?): Promise<Table>
Creates a new Table and initialize it with new data.
##### Parameters
* **options**: `object` & `Partial`&lt;[`CreateTableOptions`](../interfaces/CreateTableOptions.md)&gt;
* **options**: `object` & `Partial`&lt;[`CreateTableOptions`](../interfaces/CreateTableOptions.md)&gt;
The options object.
* **namespacePath?**: `string`[]
* **namespacePath?**: `string`[]
The namespace path to create the table in (defaults to root namespace)
##### Returns
@@ -182,15 +166,12 @@ abstract createTable(
Creates a new Table and initialize it with new data.
##### Parameters
* **name**: `string`
* **name**: `string`
The name of the table.
* **data**: [`TableLike`](../type-aliases/TableLike.md) \| `Record`&lt;`string`, `unknown`&gt;[]
* **data**: [`TableLike`](../type-aliases/TableLike.md) \| `Record`&lt;`string`, `unknown`&gt;[]
Non-empty Array of Records
to be inserted into the table
* **options?**: `Partial`&lt;[`CreateTableOptions`](../interfaces/CreateTableOptions.md)&gt;
* **options?**: `Partial`&lt;[`CreateTableOptions`](../interfaces/CreateTableOptions.md)&gt;
Additional options (backwards compatibility)
##### Returns
@@ -210,18 +191,14 @@ abstract createTable(
Creates a new Table and initialize it with new data.
##### Parameters
* **name**: `string`
* **name**: `string`
The name of the table.
* **data**: [`TableLike`](../type-aliases/TableLike.md) \| `Record`&lt;`string`, `unknown`&gt;[]
* **data**: [`TableLike`](../type-aliases/TableLike.md) \| `Record`&lt;`string`, `unknown`&gt;[]
Non-empty Array of Records
to be inserted into the table
* **namespacePath?**: `string`[]
* **namespacePath?**: `string`[]
The namespace path to create the table in (defaults to root namespace)
* **options?**: `Partial`&lt;[`CreateTableOptions`](../interfaces/CreateTableOptions.md)&gt;
* **options?**: `Partial`&lt;[`CreateTableOptions`](../interfaces/CreateTableOptions.md)&gt;
Additional options
##### Returns
@@ -253,8 +230,7 @@ abstract dropAllTables(namespacePath?): Promise<void>
Drop all tables in the database.
#### Parameters
* **namespacePath?**: `string`[]
* **namespacePath?**: `string`[]
The namespace path to drop tables from (defaults to root namespace).
#### Returns
@@ -272,11 +248,9 @@ abstract dropTable(name, namespacePath?): Promise<void>
Drop an existing table.
#### Parameters
* **name**: `string`
* **name**: `string`
The name of the table to drop.
* **namespacePath?**: `string`[]
* **namespacePath?**: `string`[]
The namespace path of the table (defaults to root namespace).
#### Returns
@@ -311,14 +285,11 @@ abstract openTable(
Open a table in the database.
#### Parameters
* **name**: `string`
* **name**: `string`
The name of the table
* **namespacePath?**: `string`[]
* **namespacePath?**: `string`[]
The namespace path of the table (defaults to root namespace)
* **options?**: `Partial`&lt;[`OpenTableOptions`](../interfaces/OpenTableOptions.md)&gt;
* **options?**: `Partial`&lt;[`OpenTableOptions`](../interfaces/OpenTableOptions.md)&gt;
Additional options
#### Returns
@@ -340,8 +311,7 @@ List all the table names in this database.
Tables will be returned in lexicographical order.
##### Parameters
* **options?**: `Partial`&lt;[`TableNamesOptions`](../interfaces/TableNamesOptions.md)&gt;
* **options?**: `Partial`&lt;[`TableNamesOptions`](../interfaces/TableNamesOptions.md)&gt;
options to control the
paging / start point (backwards compatibility)
@@ -360,11 +330,9 @@ List all the table names in this database.
Tables will be returned in lexicographical order.
##### Parameters
* **namespacePath?**: `string`[]
* **namespacePath?**: `string`[]
The namespace path to list tables from (defaults to root namespace)
* **options?**: `Partial`&lt;[`TableNamesOptions`](../interfaces/TableNamesOptions.md)&gt;
* **options?**: `Partial`&lt;[`TableNamesOptions`](../interfaces/TableNamesOptions.md)&gt;
options to control the
paging / start point

View File

@@ -73,8 +73,7 @@ The results of a full text search are ordered by relevance measured by BM25.
You can combine filters with full text search.
#### Parameters
* **options?**: `Partial`&lt;[`FtsOptions`](../interfaces/FtsOptions.md)&gt;
* **options?**: `Partial`&lt;[`FtsOptions`](../interfaces/FtsOptions.md)&gt;
#### Returns
@@ -95,8 +94,7 @@ It is a variant of the HNSW algorithm that uses product quantization to compress
the vectors.
#### Parameters
* **options?**: `Partial`&lt;[`HnswPqOptions`](../interfaces/HnswPqOptions.md)&gt;
* **options?**: `Partial`&lt;[`HnswPqOptions`](../interfaces/HnswPqOptions.md)&gt;
#### Returns
@@ -117,8 +115,7 @@ It is a variant of the HNSW algorithm that uses scalar quantization to compress
the vectors.
#### Parameters
* **options?**: `Partial`&lt;[`HnswSqOptions`](../interfaces/HnswSqOptions.md)&gt;
* **options?**: `Partial`&lt;[`HnswSqOptions`](../interfaces/HnswSqOptions.md)&gt;
#### Returns
@@ -148,8 +145,7 @@ Note that training an IVF FLAT index on a large dataset is a slow operation and
currently is also a memory intensive operation.
#### Parameters
* **options?**: `Partial`&lt;[`IvfFlatOptions`](../interfaces/IvfFlatOptions.md)&gt;
* **options?**: `Partial`&lt;[`IvfFlatOptions`](../interfaces/IvfFlatOptions.md)&gt;
#### Returns
@@ -185,8 +181,7 @@ Note that training an IVF PQ index on a large dataset is a slow operation and
currently is also a memory intensive operation.
#### Parameters
* **options?**: `Partial`&lt;[`IvfPqOptions`](../interfaces/IvfPqOptions.md)&gt;
* **options?**: `Partial`&lt;[`IvfPqOptions`](../interfaces/IvfPqOptions.md)&gt;
#### Returns
@@ -216,8 +211,7 @@ Note that training an IVF RQ index on a large dataset is a slow operation and
currently is also a memory intensive operation.
#### Parameters
* **options?**: `Partial`&lt;[`IvfRqOptions`](../interfaces/IvfRqOptions.md)&gt;
* **options?**: `Partial`&lt;[`IvfRqOptions`](../interfaces/IvfRqOptions.md)&gt;
#### Returns

View File

@@ -17,8 +17,7 @@ new MakeArrowTableOptions(values?): MakeArrowTableOptions
```
#### Parameters
* **values?**: `Partial`&lt;[`MakeArrowTableOptions`](MakeArrowTableOptions.md)&gt;
* **values?**: `Partial`&lt;[`MakeArrowTableOptions`](MakeArrowTableOptions.md)&gt;
#### Returns

View File

@@ -28,30 +28,22 @@ new MatchQuery(
Creates an instance of MatchQuery.
#### Parameters
* **query**: `string`
* **query**: `string`
The text query to search for.
* **column**: `string`
* **column**: `string`
The name of the column to search within.
* **options?**
* **options?**
Optional parameters for the match query.
- `boost`: The boost factor for the query (default is 1.0).
- `fuzziness`: The fuzziness level for the query (default is 0).
- `maxExpansions`: The maximum number of terms to consider for fuzzy matching (default is 50).
- `operator`: The logical operator to use for combining terms in the query (default is "OR").
- `prefixLength`: The number of beginning characters being unchanged for fuzzy matching.
* **options.boost?**: `number`
* **options.fuzziness?**: `number`
* **options.maxExpansions?**: `number`
* **options.operator?**: [`Operator`](../enumerations/Operator.md)
* **options.prefixLength?**: `number`
* **options.boost?**: `number`
* **options.fuzziness?**: `number`
* **options.maxExpansions?**: `number`
* **options.operator?**: [`Operator`](../enumerations/Operator.md)
* **options.prefixLength?**: `number`
#### Returns

View File

@@ -19,10 +19,8 @@ new MergeInsertBuilder(native, schema): MergeInsertBuilder
Construct a MergeInsertBuilder. __Internal use only.__
#### Parameters
* **native**: `NativeMergeInsertBuilder`
* **schema**: `Schema`&lt;`any`&gt; \| `Promise`&lt;`Schema`&lt;`any`&gt;&gt;
* **native**: `NativeMergeInsertBuilder`
* **schema**: `Schema`&lt;`any`&gt; \| `Promise`&lt;`Schema`&lt;`any`&gt;&gt;
#### Returns
@@ -39,10 +37,8 @@ execute(data, execOptions?): Promise<MergeResult>
Executes the merge insert operation
#### Parameters
* **data**: [`Data`](../type-aliases/Data.md)
* **execOptions?**: `Partial`&lt;[`WriteExecutionOptions`](../interfaces/WriteExecutionOptions.md)&gt;
* **data**: [`Data`](../type-aliases/Data.md)
* **execOptions?**: `Partial`&lt;[`WriteExecutionOptions`](../interfaces/WriteExecutionOptions.md)&gt;
#### Returns
@@ -66,8 +62,7 @@ table scan even if an index exists. This can be useful for benchmarking or when
the query optimizer chooses a suboptimal path.
#### Parameters
* **useIndex**: `boolean`
* **useIndex**: `boolean`
Whether to use indices for the merge operation. Defaults to `true`.
#### Returns
@@ -104,10 +99,8 @@ table (new data).
For example, "target.last_update < source.last_update"
#### Parameters
* **options?**
* **options.where?**: `string`
* **options?**
* **options.where?**: `string`
#### Returns
@@ -126,10 +119,8 @@ deleted. An optional condition can be provided to limit what
data is deleted.
#### Parameters
* **options?**
* **options.where?**: `string`
* **options?**
* **options.where?**: `string`
An optional condition to limit what data is deleted
#### Returns

View File

@@ -28,21 +28,16 @@ new MultiMatchQuery(
Creates an instance of MultiMatchQuery.
#### Parameters
* **query**: `string`
* **query**: `string`
The text query to search for across multiple columns.
* **columns**: `string`[]
* **columns**: `string`[]
An array of column names to search within.
* **options?**
* **options?**
Optional parameters for the multi-match query.
- `boosts`: An array of boost factors for each column (default is 1.0 for all).
- `operator`: The logical operator to use for combining terms in the query (default is "OR").
* **options.boosts?**: `number`[]
* **options.operator?**: [`Operator`](../enumerations/Operator.md)
* **options.boosts?**: `number`[]
* **options.operator?**: [`Operator`](../enumerations/Operator.md)
#### Returns

View File

@@ -21,8 +21,7 @@ new NativeJsHeaderProvider(getHeadersCallback): NativeJsHeaderProvider
Create a new JsHeaderProvider from a JavaScript callback
#### Parameters
* **getHeadersCallback**
* **getHeadersCallback**
#### Returns

View File

@@ -51,11 +51,9 @@ new OAuthHeaderProvider(tokenFetcher, refreshBufferSeconds): OAuthHeaderProvider
Initialize the OAuth provider.
#### Parameters
* **tokenFetcher**
* **tokenFetcher**
Function to fetch new tokens. Should return object with 'accessToken' and optionally 'expiresIn'.
* **refreshBufferSeconds**: `number` = `300`
* **refreshBufferSeconds**: `number` = `300`
Seconds before expiry to refresh token. Default 300 (5 minutes).
#### Returns

View File

@@ -46,8 +46,7 @@ filter(filter): PermutationBuilder
Configure filtering for the permutation.
#### Parameters
* **filter**: `string`
* **filter**: `string`
SQL filter expression
#### Returns
@@ -73,11 +72,9 @@ persist(connection, tableName): PermutationBuilder
Configure the permutation to be persisted.
#### Parameters
* **connection**: [`Connection`](Connection.md)
* **connection**: [`Connection`](Connection.md)
The connection to persist the permutation to
* **tableName**: `string`
* **tableName**: `string`
The name of the table to create
#### Returns
@@ -103,8 +100,7 @@ shuffle(options): PermutationBuilder
Configure shuffling for the permutation.
#### Parameters
* **options**: [`ShuffleOptions`](../interfaces/ShuffleOptions.md)
* **options**: [`ShuffleOptions`](../interfaces/ShuffleOptions.md)
Configuration for shuffling
#### Returns
@@ -134,8 +130,7 @@ splitCalculated(options): PermutationBuilder
Configure calculated splits for the permutation.
#### Parameters
* **options**: [`SplitCalculatedOptions`](../interfaces/SplitCalculatedOptions.md)
* **options**: [`SplitCalculatedOptions`](../interfaces/SplitCalculatedOptions.md)
Configuration for calculated splitting
#### Returns
@@ -161,8 +156,7 @@ splitHash(options): PermutationBuilder
Configure hash-based splits for the permutation.
#### Parameters
* **options**: [`SplitHashOptions`](../interfaces/SplitHashOptions.md)
* **options**: [`SplitHashOptions`](../interfaces/SplitHashOptions.md)
Configuration for hash-based splitting
#### Returns
@@ -192,8 +186,7 @@ splitRandom(options): PermutationBuilder
Configure random splits for the permutation.
#### Parameters
* **options**: [`SplitRandomOptions`](../interfaces/SplitRandomOptions.md)
* **options**: [`SplitRandomOptions`](../interfaces/SplitRandomOptions.md)
Configuration for random splitting
#### Returns
@@ -226,8 +219,7 @@ splitSequential(options): PermutationBuilder
Configure sequential splits for the permutation.
#### Parameters
* **options**: [`SplitSequentialOptions`](../interfaces/SplitSequentialOptions.md)
* **options**: [`SplitSequentialOptions`](../interfaces/SplitSequentialOptions.md)
Configuration for sequential splitting
#### Returns

View File

@@ -28,18 +28,14 @@ new PhraseQuery(
Creates an instance of `PhraseQuery`.
#### Parameters
* **query**: `string`
* **query**: `string`
The phrase to search for in the specified column.
* **column**: `string`
* **column**: `string`
The name of the column to search within.
* **options?**
* **options?**
Optional parameters for the phrase query.
- `slop`: The maximum number of intervening unmatched positions allowed between words in the phrase (default is 0).
* **options.slop?**: `number`
* **options.slop?**: `number`
#### Returns

View File

@@ -86,8 +86,7 @@ protected execute(options?): AsyncGenerator<RecordBatch<any>, void, unknown>
Execute the query and return the results as an
#### Parameters
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns
@@ -120,8 +119,7 @@ explainPlan(verbose): Promise<string>
Generates an explanation of the query execution plan.
#### Parameters
* **verbose**: `boolean` = `false`
* **verbose**: `boolean` = `false`
If true, provides a more detailed explanation. Defaults to false.
#### Returns
@@ -177,8 +175,7 @@ filter(predicate): this
A filter statement to be applied to this query.
#### Parameters
* **predicate**: `string`
* **predicate**: `string`
#### Returns
@@ -205,10 +202,8 @@ fullTextSearch(query, options?): this
```
#### Parameters
* **query**: `string` \| [`FullTextQuery`](../interfaces/FullTextQuery.md)
* **options?**: `Partial`&lt;[`FullTextSearchOptions`](../interfaces/FullTextSearchOptions.md)&gt;
* **query**: `string` \| [`FullTextQuery`](../interfaces/FullTextQuery.md)
* **options?**: `Partial`&lt;[`FullTextSearchOptions`](../interfaces/FullTextSearchOptions.md)&gt;
#### Returns
@@ -232,8 +227,7 @@ By default, a plain search has no limit. If this method is not
called then every valid row from the table will be returned.
#### Parameters
* **limit**: `number`
* **limit**: `number`
#### Returns
@@ -268,8 +262,7 @@ fixed size list of floats) then the column does not need to be specified.
If there is more than one vector column you must use
#### Parameters
* **vector**: [`IntoVector`](../type-aliases/IntoVector.md)
* **vector**: [`IntoVector`](../type-aliases/IntoVector.md)
#### Returns
@@ -308,10 +301,8 @@ nearestToText(query, columns?): Query
```
#### Parameters
* **query**: `string` \| [`FullTextQuery`](../interfaces/FullTextQuery.md)
* **columns?**: `string`[]
* **query**: `string` \| [`FullTextQuery`](../interfaces/FullTextQuery.md)
* **columns?**: `string`[]
#### Returns
@@ -330,8 +321,7 @@ Set the number of rows to skip before returning results.
This is useful for pagination.
#### Parameters
* **offset**: `number`
* **offset**: `number`
#### Returns
@@ -393,8 +383,7 @@ For example, an SQL query might state `SELECT a + b AS combined, c`. The equiva
input to this method would be:
#### Parameters
* **columns**: `string` \| `string`[] \| `Record`&lt;`string`, `string`&gt; \| `Map`&lt;`string`, `string`&gt;
* **columns**: `string` \| `string`[] \| `Record`&lt;`string`, `string`&gt; \| `Map`&lt;`string`, `string`&gt;
#### Returns
@@ -428,8 +417,7 @@ toArray(options?): Promise<any[]>
Collect the results as an array of objects.
#### Parameters
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns
@@ -450,8 +438,7 @@ toArrow(options?): Promise<Table<any>>
Collect the results as an Arrow
#### Parameters
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns
@@ -478,8 +465,7 @@ A filter statement to be applied to this query.
The filter should be supplied as an SQL query string. For example:
#### Parameters
* **predicate**: `string`
* **predicate**: `string`
#### Returns

View File

@@ -87,8 +87,7 @@ protected execute(options?): AsyncGenerator<RecordBatch<any>, void, unknown>
Execute the query and return the results as an
#### Parameters
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns
@@ -117,8 +116,7 @@ explainPlan(verbose): Promise<string>
Generates an explanation of the query execution plan.
#### Parameters
* **verbose**: `boolean` = `false`
* **verbose**: `boolean` = `false`
If true, provides a more detailed explanation. Defaults to false.
#### Returns
@@ -186,8 +184,7 @@ For example, an SQL query might state `SELECT a + b AS combined, c`. The equiva
input to this method would be:
#### Parameters
* **columns**: `string` \| `string`[] \| `Record`&lt;`string`, `string`&gt; \| `Map`&lt;`string`, `string`&gt;
* **columns**: `string` \| `string`[] \| `Record`&lt;`string`, `string`&gt; \| `Map`&lt;`string`, `string`&gt;
#### Returns
@@ -217,8 +214,7 @@ toArray(options?): Promise<any[]>
Collect the results as an array of objects.
#### Parameters
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns
@@ -235,8 +231,7 @@ toArrow(options?): Promise<Table<any>>
Collect the results as an Arrow
#### Parameters
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns

View File

@@ -33,10 +33,8 @@ Create a new session with custom cache sizes.
Defaults to 1GB if not specified.
#### Parameters
* **indexCacheSizeBytes?**: `null` \| `bigint`
* **metadataCacheSizeBytes?**: `null` \| `bigint`
* **indexCacheSizeBytes?**: `null` \| `bigint`
* **metadataCacheSizeBytes?**: `null` \| `bigint`
#### Returns

View File

@@ -37,8 +37,7 @@ new StaticHeaderProvider(headers): StaticHeaderProvider
Initialize with static headers.
#### Parameters
* **headers**: `Record`&lt;`string`, `string`&gt;
* **headers**: `Record`&lt;`string`, `string`&gt;
Headers to return for every request.
#### Returns

View File

@@ -46,11 +46,9 @@ abstract add(data, options?): Promise<AddResult>
Insert records into this Table.
#### Parameters
* **data**: [`Data`](../type-aliases/Data.md)
* **data**: [`Data`](../type-aliases/Data.md)
Records to be inserted into the Table
* **options?**: `Partial`&lt;[`AddDataOptions`](../interfaces/AddDataOptions.md)&gt;
* **options?**: `Partial`&lt;[`AddDataOptions`](../interfaces/AddDataOptions.md)&gt;
#### Returns
@@ -70,8 +68,7 @@ abstract addColumns(newColumnTransforms): Promise<AddColumnsResult>
Add new columns with defined values.
#### Parameters
* **newColumnTransforms**: `Field`&lt;`any`&gt; \| `Field`&lt;`any`&gt;[] \| `Schema`&lt;`any`&gt; \| [`AddColumnsSql`](../interfaces/AddColumnsSql.md)[]
* **newColumnTransforms**: `Field`&lt;`any`&gt; \| `Field`&lt;`any`&gt;[] \| `Schema`&lt;`any`&gt; \| [`AddColumnsSql`](../interfaces/AddColumnsSql.md)[]
Either:
- An array of objects with column names and SQL expressions to calculate values
- A single Arrow Field defining one column with its data type (column will be initialized with null values)
@@ -96,8 +93,7 @@ abstract alterColumns(columnAlterations): Promise<AlterColumnsResult>
Alter the name or nullability of columns.
#### Parameters
* **columnAlterations**: [`ColumnAlteration`](../interfaces/ColumnAlteration.md)[]
* **columnAlterations**: [`ColumnAlteration`](../interfaces/ColumnAlteration.md)[]
One or more alterations to
apply to columns.
@@ -126,8 +122,7 @@ Calling this method will set the table into time-travel mode. If you
wish to return to standard mode, call `checkoutLatest`.
#### Parameters
* **version**: `string` \| `number`
* **version**: `string` \| `number`
The version to checkout, could be version number or tag
#### Returns
@@ -196,8 +191,7 @@ abstract countRows(filter?): Promise<number>
Count the total number of rows in the dataset.
#### Parameters
* **filter?**: `string`
* **filter?**: `string`
#### Returns
@@ -222,10 +216,8 @@ We currently don't support custom named indexes.
The index name will always be `${column}_idx`.
#### Parameters
* **column**: `string`
* **options?**: `Partial`&lt;[`IndexOptions`](../interfaces/IndexOptions.md)&gt;
* **column**: `string`
* **options?**: `Partial`&lt;[`IndexOptions`](../interfaces/IndexOptions.md)&gt;
#### Returns
@@ -268,8 +260,7 @@ abstract delete(predicate): Promise<DeleteResult>
Delete the rows that satisfy the predicate.
#### Parameters
* **predicate**: `string`
* **predicate**: `string`
#### Returns
@@ -308,8 +299,7 @@ call ``compact_files`` to rewrite the data without the removed columns and
then call ``cleanup_files`` to remove the old files.
#### Parameters
* **columnNames**: `string`[]
* **columnNames**: `string`[]
The names of the columns to drop. These can
be nested column references (e.g. "a.b.c") or top-level column names
(e.g. "a").
@@ -332,8 +322,7 @@ abstract dropIndex(name): Promise<void>
Drop an index from the table.
#### Parameters
* **name**: `string`
* **name**: `string`
The name of the index.
This does not delete the index from disk, it just removes it from the table.
To delete the index, run [Table#optimize](Table.md#optimize) after dropping the index.
@@ -354,8 +343,7 @@ abstract indexStats(name): Promise<undefined | IndexStatistics>
List all the stats of a specified index
#### Parameters
* **name**: `string`
* **name**: `string`
The name of the index.
#### Returns
@@ -460,8 +448,7 @@ abstract mergeInsert(on): MergeInsertBuilder
```
#### Parameters
* **on**: `string` \| `string`[]
* **on**: `string` \| `string`[]
#### Returns
@@ -492,8 +479,7 @@ Modeled after ``VACUUM`` in PostgreSQL.
modification operations.
#### Parameters
* **options?**: `Partial`&lt;[`OptimizeOptions`](../interfaces/OptimizeOptions.md)&gt;
* **options?**: `Partial`&lt;[`OptimizeOptions`](../interfaces/OptimizeOptions.md)&gt;
#### Returns
@@ -510,8 +496,7 @@ abstract prewarmIndex(name): Promise<void>
Prewarm an index in the table.
#### Parameters
* **name**: `string`
* **name**: `string`
The name of the index.
This will load the index into memory. This may reduce the cold-start time for
future queries. If the index does not fit in the cache then this call may be
@@ -643,14 +628,11 @@ Create a search query to find the nearest neighbors
of the given query
#### Parameters
* **query**: `string` \| [`IntoVector`](../type-aliases/IntoVector.md) \| [`MultiVector`](../type-aliases/MultiVector.md) \| [`FullTextQuery`](../interfaces/FullTextQuery.md)
* **query**: `string` \| [`IntoVector`](../type-aliases/IntoVector.md) \| [`MultiVector`](../type-aliases/MultiVector.md) \| [`FullTextQuery`](../interfaces/FullTextQuery.md)
the query, a vector or string
* **queryType?**: `string`
* **queryType?**: `string`
the type of the query, "vector", "fts", or "auto"
* **ftsColumns?**: `string` \| `string`[]
* **ftsColumns?**: `string` \| `string`[]
the columns to search in for full text search
for now, only one column can be searched at a time.
when "auto" is used, if the query is a string and an embedding function is defined, it will be treated as a vector query
@@ -715,8 +697,7 @@ abstract takeOffsets(offsets): TakeQuery
Create a query that returns a subset of the rows in the table.
#### Parameters
* **offsets**: `number`[]
* **offsets**: `number`[]
The offsets of the rows to return.
#### Returns
@@ -736,8 +717,7 @@ abstract takeRowIds(rowIds): TakeQuery
Create a query that returns a subset of the rows in the table.
#### Parameters
* **rowIds**: readonly (`number` \| `bigint`)[]
* **rowIds**: readonly (`number` \| `bigint`)[]
The row ids of the rows to return.
Row ids returned by `withRowId()` are `bigint`, so `bigint[]` is supported.
For convenience / backwards compatibility, `number[]` is also accepted (for
@@ -776,8 +756,7 @@ abstract update(opts): Promise<UpdateResult>
Update existing records in the Table
##### Parameters
* **opts**: `object` & `Partial`&lt;[`UpdateOptions`](../interfaces/UpdateOptions.md)&gt;
* **opts**: `object` & `Partial`&lt;[`UpdateOptions`](../interfaces/UpdateOptions.md)&gt;
##### Returns
@@ -801,8 +780,7 @@ abstract update(opts): Promise<UpdateResult>
Update existing records in the Table
##### Parameters
* **opts**: `object` & `Partial`&lt;[`UpdateOptions`](../interfaces/UpdateOptions.md)&gt;
* **opts**: `object` & `Partial`&lt;[`UpdateOptions`](../interfaces/UpdateOptions.md)&gt;
##### Returns
@@ -839,12 +817,10 @@ better performance with a single [`merge_insert`] call instead of
repeatedly calilng this method.
##### Parameters
* **updates**: `Record`&lt;`string`, `string`&gt; \| `Map`&lt;`string`, `string`&gt;
* **updates**: `Record`&lt;`string`, `string`&gt; \| `Map`&lt;`string`, `string`&gt;
the
columns to update
* **options?**: `Partial`&lt;[`UpdateOptions`](../interfaces/UpdateOptions.md)&gt;
* **options?**: `Partial`&lt;[`UpdateOptions`](../interfaces/UpdateOptions.md)&gt;
additional options to control
the update behavior
@@ -875,8 +851,7 @@ is the same thing as calling `nearestTo` on the builder returned
by `query`.
#### Parameters
* **vector**: [`IntoVector`](../type-aliases/IntoVector.md) \| [`MultiVector`](../type-aliases/MultiVector.md)
* **vector**: [`IntoVector`](../type-aliases/IntoVector.md) \| [`MultiVector`](../type-aliases/MultiVector.md)
#### Returns
@@ -911,11 +886,9 @@ abstract waitForIndex(indexNames, timeoutSeconds): Promise<void>
Waits for asynchronous indexing to complete on the table.
#### Parameters
* **indexNames**: `string`[]
* **indexNames**: `string`[]
The name of the indices to wait for
* **timeoutSeconds**: `number`
* **timeoutSeconds**: `number`
The number of seconds to wait before timing out
This will raise an error if the indices are not created and fully indexed within the timeout.

View File

@@ -27,10 +27,8 @@ create(tag, version): Promise<void>
```
#### Parameters
* **tag**: `string`
* **version**: `number`
* **tag**: `string`
* **version**: `number`
#### Returns
@@ -45,8 +43,7 @@ delete(tag): Promise<void>
```
#### Parameters
* **tag**: `string`
* **tag**: `string`
#### Returns
@@ -61,8 +58,7 @@ getVersion(tag): Promise<number>
```
#### Parameters
* **tag**: `string`
* **tag**: `string`
#### Returns
@@ -89,10 +85,8 @@ update(tag, version): Promise<void>
```
#### Parameters
* **tag**: `string`
* **version**: `number`
* **tag**: `string`
* **version**: `number`
#### Returns

View File

@@ -82,8 +82,7 @@ protected execute(options?): AsyncGenerator<RecordBatch<any>, void, unknown>
Execute the query and return the results as an
#### Parameters
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns
@@ -116,8 +115,7 @@ explainPlan(verbose): Promise<string>
Generates an explanation of the query execution plan.
#### Parameters
* **verbose**: `boolean` = `false`
* **verbose**: `boolean` = `false`
If true, provides a more detailed explanation. Defaults to false.
#### Returns
@@ -193,8 +191,7 @@ For example, an SQL query might state `SELECT a + b AS combined, c`. The equiva
input to this method would be:
#### Parameters
* **columns**: `string` \| `string`[] \| `Record`&lt;`string`, `string`&gt; \| `Map`&lt;`string`, `string`&gt;
* **columns**: `string` \| `string`[] \| `Record`&lt;`string`, `string`&gt; \| `Map`&lt;`string`, `string`&gt;
#### Returns
@@ -228,8 +225,7 @@ toArray(options?): Promise<any[]>
Collect the results as an array of objects.
#### Parameters
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns
@@ -250,8 +246,7 @@ toArrow(options?): Promise<Table<any>>
Collect the results as an Arrow
#### Parameters
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns

View File

@@ -15,8 +15,7 @@ new VectorColumnOptions(values?): VectorColumnOptions
```
#### Parameters
* **values?**: `Partial`&lt;[`VectorColumnOptions`](VectorColumnOptions.md)&gt;
* **values?**: `Partial`&lt;[`VectorColumnOptions`](VectorColumnOptions.md)&gt;
#### Returns

View File

@@ -39,8 +39,7 @@ addQueryVector(vector): VectorQuery
```
#### Parameters
* **vector**: [`IntoVector`](../type-aliases/IntoVector.md)
* **vector**: [`IntoVector`](../type-aliases/IntoVector.md)
#### Returns
@@ -127,8 +126,7 @@ This controls which column is compared to the query vector supplied in
the call to
#### Parameters
* **column**: `string`
* **column**: `string`
#### Returns
@@ -150,10 +148,8 @@ distanceRange(lowerBound?, upperBound?): VectorQuery
```
#### Parameters
* **lowerBound?**: `number`
* **upperBound?**: `number`
* **lowerBound?**: `number`
* **upperBound?**: `number`
#### Returns
@@ -174,8 +170,7 @@ to some kind of distance metric. This parameter controls which distance metric
use. See
#### Parameters
* **distanceType**: `"l2"` \| `"cosine"` \| `"dot"`
* **distanceType**: `"l2"` \| `"cosine"` \| `"dot"`
#### Returns
@@ -209,8 +204,7 @@ Increasing this value will increase the recall of your query but will
also increase the latency of your query. The default value is 1.5*limit.
#### Parameters
* **ef**: `number`
* **ef**: `number`
#### Returns
@@ -227,8 +221,7 @@ protected execute(options?): AsyncGenerator<RecordBatch<any>, void, unknown>
Execute the query and return the results as an
#### Parameters
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns
@@ -261,8 +254,7 @@ explainPlan(verbose): Promise<string>
Generates an explanation of the query execution plan.
#### Parameters
* **verbose**: `boolean` = `false`
* **verbose**: `boolean` = `false`
If true, provides a more detailed explanation. Defaults to false.
#### Returns
@@ -318,8 +310,7 @@ filter(predicate): this
A filter statement to be applied to this query.
#### Parameters
* **predicate**: `string`
* **predicate**: `string`
#### Returns
@@ -346,10 +337,8 @@ fullTextSearch(query, options?): this
```
#### Parameters
* **query**: `string` \| [`FullTextQuery`](../interfaces/FullTextQuery.md)
* **options?**: `Partial`&lt;[`FullTextSearchOptions`](../interfaces/FullTextSearchOptions.md)&gt;
* **query**: `string` \| [`FullTextQuery`](../interfaces/FullTextQuery.md)
* **options?**: `Partial`&lt;[`FullTextSearchOptions`](../interfaces/FullTextSearchOptions.md)&gt;
#### Returns
@@ -373,8 +362,7 @@ By default, a plain search has no limit. If this method is not
called then every valid row from the table will be returned.
#### Parameters
* **limit**: `number`
* **limit**: `number`
#### Returns
@@ -401,8 +389,7 @@ a narrow filter to allow these queries to spend more time searching and avoid
potential false negatives.
#### Parameters
* **maximumNprobes**: `number`
* **maximumNprobes**: `number`
#### Returns
@@ -424,8 +411,7 @@ filter. See `nprobes` for more details. Higher values will increase recall
but will also increase latency.
#### Parameters
* **minimumNprobes**: `number`
* **minimumNprobes**: `number`
#### Returns
@@ -465,8 +451,7 @@ you can use `minimumNprobes` and `maximumNprobes`. This method sets both
the minimum and maximum to the same value.
#### Parameters
* **nprobes**: `number`
* **nprobes**: `number`
#### Returns
@@ -485,8 +470,7 @@ Set the number of rows to skip before returning results.
This is useful for pagination.
#### Parameters
* **offset**: `number`
* **offset**: `number`
#### Returns
@@ -590,8 +574,7 @@ and the quantized result vectors. This can be considerably different than the t
distance between the query vector and the actual uncompressed vector.
#### Parameters
* **refineFactor**: `number`
* **refineFactor**: `number`
#### Returns
@@ -606,8 +589,7 @@ rerank(reranker): VectorQuery
```
#### Parameters
* **reranker**: [`Reranker`](../namespaces/rerankers/interfaces/Reranker.md)
* **reranker**: [`Reranker`](../namespaces/rerankers/interfaces/Reranker.md)
#### Returns
@@ -642,8 +624,7 @@ For example, an SQL query might state `SELECT a + b AS combined, c`. The equiva
input to this method would be:
#### Parameters
* **columns**: `string` \| `string`[] \| `Record`&lt;`string`, `string`&gt; \| `Map`&lt;`string`, `string`&gt;
* **columns**: `string` \| `string`[] \| `Record`&lt;`string`, `string`&gt; \| `Map`&lt;`string`, `string`&gt;
#### Returns
@@ -677,8 +658,7 @@ toArray(options?): Promise<any[]>
Collect the results as an array of objects.
#### Parameters
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns
@@ -699,8 +679,7 @@ toArrow(options?): Promise<Table<any>>
Collect the results as an Arrow
#### Parameters
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
* **options?**: `Partial`&lt;[`QueryExecutionOptions`](../interfaces/QueryExecutionOptions.md)&gt;
#### Returns
@@ -727,8 +706,7 @@ A filter statement to be applied to this query.
The filter should be supplied as an SQL query string. For example:
#### Parameters
* **predicate**: `string`
* **predicate**: `string`
#### Returns

View File

@@ -0,0 +1,59 @@
[**@lancedb/lancedb**](../README.md) • **Docs**
***
[@lancedb/lancedb](../globals.md) / OAuthFlowType
# Enumeration: OAuthFlowType
OAuth authentication flow types.
## Enumeration Members
### AuthorizationCodePKCE
```ts
AuthorizationCodePKCE: "authorization_code_pkce";
```
Authorization Code with PKCE (interactive browser-based auth).
***
### AzureManagedIdentity
```ts
AzureManagedIdentity: "azure_managed_identity";
```
Azure Managed Identity via IMDS.
***
### ClientCredentials
```ts
ClientCredentials: "client_credentials";
```
Client Credentials grant (service-to-service / M2M).
***
### DeviceCode
```ts
DeviceCode: "device_code";
```
Device Code grant (CLI / headless environments).
***
### WorkloadIdentity
```ts
WorkloadIdentity: "workload_identity";
```
Workload Identity Federation (K8s, GitHub Actions).

View File

@@ -11,8 +11,7 @@ function RecordBatchIterator(promisedInner): AsyncGenerator<RecordBatch<any>, vo
```
## Parameters
* **promisedInner**: `Promise`&lt;`RecordBatchIterator`&gt;
* **promisedInner**: `Promise`&lt;`RecordBatchIterator`&gt;
## Returns

View File

@@ -25,17 +25,13 @@ Accepted formats:
- `db://host:port` - remote database (LanceDB cloud)
### Parameters
* **uri**: `string`
* **uri**: `string`
The uri of the database. If the database uri starts
with `db://` then it connects to a remote database.
* **options?**: `Partial`&lt;[`ConnectionOptions`](../interfaces/ConnectionOptions.md)&gt;
* **options?**: `Partial`&lt;[`ConnectionOptions`](../interfaces/ConnectionOptions.md)&gt;
The options to use when connecting to the database
* **session?**: [`Session`](../classes/Session.md)
* **headerProvider?**: [`HeaderProvider`](../classes/HeaderProvider.md) \| () => `Record`&lt;`string`, `string`&gt; \| () => `Promise`&lt;`Record`&lt;`string`, `string`&gt;&gt;
* **session?**: [`Session`](../classes/Session.md)
* **headerProvider?**: [`HeaderProvider`](../classes/HeaderProvider.md) \| () => `Record`&lt;`string`, `string`&gt; \| () => `Promise`&lt;`Record`&lt;`string`, `string`&gt;&gt;
### Returns
@@ -85,8 +81,7 @@ Accepted formats:
- `db://host:port` - remote database (LanceDB cloud)
### Parameters
* **options**: `Partial`&lt;[`ConnectionOptions`](../interfaces/ConnectionOptions.md)&gt; & `object`
* **options**: `Partial`&lt;[`ConnectionOptions`](../interfaces/ConnectionOptions.md)&gt; & `object`
The options to use when connecting to the database
### Returns

View File

@@ -46,12 +46,9 @@ rules are as follows:
- Array<any> => List
## Parameters
* **data**: `Record`&lt;`string`, `unknown`&gt;[]
* **options?**: `Partial`&lt;[`MakeArrowTableOptions`](../classes/MakeArrowTableOptions.md)&gt;
* **metadata?**: `Map`&lt;`string`, `string`&gt;
* **data**: `Record`&lt;`string`, `unknown`&gt;[]
* **options?**: `Partial`&lt;[`MakeArrowTableOptions`](../classes/MakeArrowTableOptions.md)&gt;
* **metadata?**: `Map`&lt;`string`, `string`&gt;
## Returns

View File

@@ -11,8 +11,7 @@ function packBits(data): number[]
```
## Parameters
* **data**: `number`[]
* **data**: `number`[]
## Returns

View File

@@ -13,8 +13,7 @@ function permutationBuilder(table): PermutationBuilder
Create a permutation builder for the given table.
## Parameters
* **table**: [`Table`](../classes/Table.md)
* **table**: [`Table`](../classes/Table.md)
The source table to create a permutation from
## Returns

View File

@@ -12,6 +12,7 @@
## Enumerations
- [FullTextQueryType](enumerations/FullTextQueryType.md)
- [OAuthFlowType](enumerations/OAuthFlowType.md)
- [Occur](enumerations/Occur.md)
- [Operator](enumerations/Operator.md)
@@ -70,6 +71,8 @@
- [IvfPqOptions](interfaces/IvfPqOptions.md)
- [IvfRqOptions](interfaces/IvfRqOptions.md)
- [MergeResult](interfaces/MergeResult.md)
- [NativeOAuthConfig](interfaces/NativeOAuthConfig.md)
- [OAuthConfig](interfaces/OAuthConfig.md)
- [OpenTableOptions](interfaces/OpenTableOptions.md)
- [OptimizeOptions](interfaces/OptimizeOptions.md)
- [OptimizeStats](interfaces/OptimizeStats.md)

View File

@@ -64,6 +64,18 @@ client used by manifest-enabled native connections.
***
### oauthConfig?
```ts
optional oauthConfig: NativeOAuthConfig;
```
(For LanceDB cloud only): OAuth configuration for IdP-based
authentication (e.g., Azure Entra ID). When set, token acquisition
and refresh are handled entirely in Rust.
***
### readConsistencyInterval?
```ts

View File

@@ -0,0 +1,112 @@
[**@lancedb/lancedb**](../README.md) • **Docs**
***
[@lancedb/lancedb](../globals.md) / NativeOAuthConfig
# Interface: NativeOAuthConfig
OAuth configuration for LanceDB authentication.
All token acquisition and refresh is handled in the Rust layer.
## Properties
### callbackPort?
```ts
optional callbackPort: number;
```
Port for local callback server (authorization_code_pkce, default: 8400).
***
### clientId
```ts
clientId: string;
```
Application / Client ID.
***
### clientSecret?
```ts
optional clientSecret: string;
```
Client secret (required for client_credentials).
***
### flow?
```ts
optional flow: string;
```
Authentication flow: "client_credentials", "authorization_code_pkce",
"device_code", "azure_managed_identity", "workload_identity"
***
### issuerUrl
```ts
issuerUrl: string;
```
OIDC issuer URL or OAuth authority URL.
For Azure: `https://login.microsoftonline.com/{tenant_id}/v2.0`
***
### managedIdentityClientId?
```ts
optional managedIdentityClientId: string;
```
Client ID for user-assigned managed identity (azure_managed_identity).
***
### redirectUri?
```ts
optional redirectUri: string;
```
Redirect URI (authorization_code_pkce flow).
***
### refreshBufferSecs?
```ts
optional refreshBufferSecs: number;
```
Seconds before expiry to trigger proactive refresh (default: 300).
***
### scopes
```ts
scopes: string[];
```
OAuth scopes to request. For Azure: `["api://{app_id}/.default"]`
***
### tokenFile?
```ts
optional tokenFile: string;
```
Path to federated token file (workload_identity).

View File

@@ -0,0 +1,134 @@
[**@lancedb/lancedb**](../README.md) • **Docs**
***
[@lancedb/lancedb](../globals.md) / OAuthConfig
# Interface: OAuthConfig
OAuth configuration for LanceDB authentication.
All token acquisition and refresh is handled in the Rust layer.
This config is passed through to Rust via napi-rs.
## Examples
```typescript
const config: OAuthConfig = {
issuerUrl: "https://login.microsoftonline.com/{tenant}/v2.0",
clientId: "app-id",
clientSecret: "secret",
scopes: ["api://lancedb-api/.default"],
};
```
```typescript
const config: OAuthConfig = {
issuerUrl: "https://login.microsoftonline.com/{tenant}/v2.0",
clientId: "app-id",
scopes: ["api://lancedb-api/.default"],
flow: OAuthFlowType.AzureManagedIdentity,
};
```
## Properties
### callbackPort?
```ts
optional callbackPort: number;
```
Port for local callback server (AuthorizationCodePKCE, default: 8400).
***
### clientId
```ts
clientId: string;
```
Application / Client ID.
***
### clientSecret?
```ts
optional clientSecret: string;
```
Client secret (required for ClientCredentials).
***
### flow?
```ts
optional flow: OAuthFlowType;
```
Authentication flow (default: ClientCredentials).
***
### issuerUrl
```ts
issuerUrl: string;
```
OIDC issuer URL or OAuth authority URL.
For Azure: `https://login.microsoftonline.com/{tenant_id}/v2.0`
***
### managedIdentityClientId?
```ts
optional managedIdentityClientId: string;
```
Client ID for user-assigned managed identity (AzureManagedIdentity).
***
### redirectUri?
```ts
optional redirectUri: string;
```
Redirect URI (AuthorizationCodePKCE flow).
***
### refreshBufferSecs?
```ts
optional refreshBufferSecs: number;
```
Seconds before expiry to trigger proactive refresh (default: 300).
***
### scopes
```ts
scopes: string[];
```
OAuth scopes to request.
For Azure: `["api://{app_id}/.default"]`
***
### tokenFile?
```ts
optional tokenFile: string;
```
Path to federated token file (WorkloadIdentity).

View File

@@ -58,8 +58,7 @@ computeQueryEmbeddings(data): Promise<number[] | Uint8Array | Float32Array | Flo
Compute the embeddings for a single query
#### Parameters
* **data**: `T`
* **data**: `T`
#### Returns
@@ -76,8 +75,7 @@ abstract computeSourceEmbeddings(data): Promise<number[][] | Float32Array[] | Fl
Creates a vector representation for the given values.
#### Parameters
* **data**: `T`[]
* **data**: `T`[]
#### Returns
@@ -155,8 +153,7 @@ protected resolveVariables(config): Partial<M>
Apply variables to the config.
#### Parameters
* **config**: `Partial`&lt;`M`&gt;
* **config**: `Partial`&lt;`M`&gt;
#### Returns
@@ -173,8 +170,7 @@ sourceField(optionsOrDatatype): [DataType<Type, any>, Map<string, EmbeddingFunct
sourceField is used in combination with `LanceSchema` to provide a declarative data model
#### Parameters
* **optionsOrDatatype**: `DataType`&lt;`Type`, `any`&gt; \| `Partial`&lt;[`FieldOptions`](../interfaces/FieldOptions.md)&lt;`DataType`&lt;`Type`, `any`&gt;&gt;&gt;
* **optionsOrDatatype**: `DataType`&lt;`Type`, `any`&gt; \| `Partial`&lt;[`FieldOptions`](../interfaces/FieldOptions.md)&lt;`DataType`&lt;`Type`, `any`&gt;&gt;&gt;
The options for the field or the datatype
#### Returns
@@ -211,8 +207,7 @@ vectorField(optionsOrDatatype?): [DataType<Type, any>, Map<string, EmbeddingFunc
vectorField is used in combination with `LanceSchema` to provide a declarative data model
#### Parameters
* **optionsOrDatatype?**: `DataType`&lt;`Type`, `any`&gt; \| `Partial`&lt;[`FieldOptions`](../interfaces/FieldOptions.md)&lt;`DataType`&lt;`Type`, `any`&gt;&gt;&gt;
* **optionsOrDatatype?**: `DataType`&lt;`Type`, `any`&gt; \| `Partial`&lt;[`FieldOptions`](../interfaces/FieldOptions.md)&lt;`DataType`&lt;`Type`, `any`&gt;&gt;&gt;
The options for the field
#### Returns

View File

@@ -32,8 +32,7 @@ functionToMetadata(conf): Record<string, any>
```
#### Parameters
* **conf**: [`EmbeddingFunctionConfig`](../interfaces/EmbeddingFunctionConfig.md)
* **conf**: [`EmbeddingFunctionConfig`](../interfaces/EmbeddingFunctionConfig.md)
#### Returns
@@ -54,8 +53,7 @@ Fetch an embedding function by name
**T** *extends* [`EmbeddingFunction`](EmbeddingFunction.md)&lt;`unknown`, [`FunctionOptions`](../interfaces/FunctionOptions.md)&gt;
#### Parameters
* **name**: `string`
* **name**: `string`
The name of the function
#### Returns
@@ -71,8 +69,7 @@ getTableMetadata(functions): Map<string, string>
```
#### Parameters
* **functions**: [`EmbeddingFunctionConfig`](../interfaces/EmbeddingFunctionConfig.md)[]
* **functions**: [`EmbeddingFunctionConfig`](../interfaces/EmbeddingFunctionConfig.md)[]
#### Returns
@@ -89,8 +86,7 @@ getVar(name): undefined | string
Get a variable.
#### Parameters
* **name**: `string`
* **name**: `string`
#### Returns
@@ -129,18 +125,15 @@ Register an embedding function
**T** *extends* [`EmbeddingFunctionConstructor`](../interfaces/EmbeddingFunctionConstructor.md)&lt;[`EmbeddingFunction`](EmbeddingFunction.md)&lt;`any`, [`FunctionOptions`](../interfaces/FunctionOptions.md)&gt;&gt; = [`EmbeddingFunctionConstructor`](../interfaces/EmbeddingFunctionConstructor.md)&lt;[`EmbeddingFunction`](EmbeddingFunction.md)&lt;`any`, [`FunctionOptions`](../interfaces/FunctionOptions.md)&gt;&gt;
#### Parameters
* **this**: [`EmbeddingFunctionRegistry`](EmbeddingFunctionRegistry.md)
* **alias?**: `string`
* **this**: [`EmbeddingFunctionRegistry`](EmbeddingFunctionRegistry.md)
* **alias?**: `string`
#### Returns
`Function`
##### Parameters
* **ctor**: `T`
* **ctor**: `T`
##### Returns
@@ -161,8 +154,7 @@ reset(this): void
reset the registry to the initial state
#### Parameters
* **this**: [`EmbeddingFunctionRegistry`](EmbeddingFunctionRegistry.md)
* **this**: [`EmbeddingFunctionRegistry`](EmbeddingFunctionRegistry.md)
#### Returns
@@ -187,10 +179,8 @@ whether to use a GPU for inference.
The name must not contain colons. The default value can contain colons.
#### Parameters
* **name**: `string`
* **value**: `string`
* **name**: `string`
* **value**: `string`
#### Returns

View File

@@ -43,8 +43,7 @@ computeQueryEmbeddings(data): Promise<number[] | Uint8Array | Float32Array | Flo
Compute the embeddings for a single query
#### Parameters
* **data**: `string`
* **data**: `string`
#### Returns
@@ -65,8 +64,7 @@ computeSourceEmbeddings(data): Promise<number[][] | Float32Array[] | Float64Arra
Creates a vector representation for the given values.
#### Parameters
* **data**: `string`[]
* **data**: `string`[]
#### Returns
@@ -103,10 +101,8 @@ abstract generateEmbeddings(texts, ...args): Promise<number[][] | Float32Array[]
```
#### Parameters
* **texts**: `string`[]
* ...**args**: `any`[]
* **texts**: `string`[]
* ...**args**: `any`[]
#### Returns
@@ -182,8 +178,7 @@ protected resolveVariables(config): Partial<M>
Apply variables to the config.
#### Parameters
* **config**: `Partial`&lt;`M`&gt;
* **config**: `Partial`&lt;`M`&gt;
#### Returns
@@ -245,8 +240,7 @@ vectorField(optionsOrDatatype?): [DataType<Type, any>, Map<string, EmbeddingFunc
vectorField is used in combination with `LanceSchema` to provide a declarative data model
#### Parameters
* **optionsOrDatatype?**: `DataType`&lt;`Type`, `any`&gt; \| `Partial`&lt;[`FieldOptions`](../interfaces/FieldOptions.md)&lt;`DataType`&lt;`Type`, `any`&gt;&gt;&gt;
* **optionsOrDatatype?**: `DataType`&lt;`Type`, `any`&gt; \| `Partial`&lt;[`FieldOptions`](../interfaces/FieldOptions.md)&lt;`DataType`&lt;`Type`, `any`&gt;&gt;&gt;
The options for the field
#### Returns

View File

@@ -13,8 +13,7 @@ function LanceSchema(fields): Schema
Create a schema with embedding functions.
## Parameters
* **fields**: `Record`&lt;`string`, `object` \| [`object`, `Map`&lt;`string`, [`EmbeddingFunction`](../classes/EmbeddingFunction.md)&lt;`any`, [`FunctionOptions`](../interfaces/FunctionOptions.md)&gt;&gt;]&gt;
* **fields**: `Record`&lt;`string`, `object` \| [`object`, `Map`&lt;`string`, [`EmbeddingFunction`](../classes/EmbeddingFunction.md)&lt;`any`, [`FunctionOptions`](../interfaces/FunctionOptions.md)&gt;&gt;]&gt;
## Returns

View File

@@ -11,16 +11,14 @@ function register(name?): (ctor) => any
```
## Parameters
* **name?**: `string`
* **name?**: `string`
## Returns
`Function`
### Parameters
* **ctor**: [`EmbeddingFunctionConstructor`](../interfaces/EmbeddingFunctionConstructor.md)&lt;[`EmbeddingFunction`](../classes/EmbeddingFunction.md)&lt;`any`, [`FunctionOptions`](../interfaces/FunctionOptions.md)&gt;&gt;
* **ctor**: [`EmbeddingFunctionConstructor`](../interfaces/EmbeddingFunctionConstructor.md)&lt;[`EmbeddingFunction`](../classes/EmbeddingFunction.md)&lt;`any`, [`FunctionOptions`](../interfaces/FunctionOptions.md)&gt;&gt;
### Returns

View File

@@ -19,8 +19,7 @@ new EmbeddingFunctionConstructor(modelOptions?): T
```
#### Parameters
* **modelOptions?**: `T`\[`"TOptions"`\]
* **modelOptions?**: `T`\[`"TOptions"`\]
#### Returns

View File

@@ -19,8 +19,7 @@ create(options?): CreateReturnType<T>
```
#### Parameters
* **options?**: `T`\[`"TOptions"`\]
* **options?**: `T`\[`"TOptions"`\]
#### Returns

View File

@@ -20,12 +20,9 @@ rerankHybrid(
```
#### Parameters
* **query**: `string`
* **vecResults**: `RecordBatch`&lt;`any`&gt;
* **ftsResults**: `RecordBatch`&lt;`any`&gt;
* **query**: `string`
* **vecResults**: `RecordBatch`&lt;`any`&gt;
* **ftsResults**: `RecordBatch`&lt;`any`&gt;
#### Returns
@@ -40,8 +37,7 @@ static create(k): Promise<RRFReranker>
```
#### Parameters
* **k**: `number` = `60`
* **k**: `number` = `60`
#### Returns

View File

@@ -18,12 +18,9 @@ rerankHybrid(
```
#### Parameters
* **query**: `string`
* **vecResults**: `RecordBatch`&lt;`any`&gt;
* **ftsResults**: `RecordBatch`&lt;`any`&gt;
* **query**: `string`
* **vecResults**: `RecordBatch`&lt;`any`&gt;
* **ftsResults**: `RecordBatch`&lt;`any`&gt;
#### Returns