mirror of
https://github.com/lancedb/lancedb.git
synced 2026-11-13 14:16:54 +00:00
A broad documentation pass across the areas LanceDB Enterprise and Embedded diverge on most: **Data Curation** -- GPU Function execution, Slurm scheduling (and what Slurm is, for readers new to it), blob late materialization as its own page, joins, aggregation/profiling, sampling, near-duplicate detection, chunking, distributed shuffle, and IVF-partition clustering. **Feature Engineering** -- computed columns and materialized views, restructured to lead with the Function-based path and show the SQL form side by side with Python throughout; a single Auto Refresh page instead of duplicating scheduling details on every refresh page; adaptive execution; checkpointing; GPU and Slurm placement for refresh workers; a Training Cache page for the PyTorch data loader's automatic cache benefit. **Security & Governance** -- an Audit Log reference (schema, access, grants), Secrets promoted to an ordinary catalog object with their own SQL DDL and a vending/rotation guide, and privilege-table fixes verified against the authorization source. **Deployment & Maintenance** -- Horizontal Scaling and OpenTelemetry moved into a real Deployment area; Automated Cleanup folded into Intelligent Auto-Maintenance (every other maintenance decision already lived there); RTE Compaction and Advanced Conflict Resolution documented in depth. **Landing page** -- the Enterprise feature comparison table reorganized (several redundant or stale rows removed, several new areas added), and the "why Enterprise" bullets replaced with ones tied to a concrete page (Performance, Scale, Fault tolerance, Multicloud deployment, Simplify operations) instead of vague promises. Plus a full pass addressing lancedb-gatekeeper's review: a real test-safety bug (a quickstart test could silently overwrite and delete a deployment's own `frames` table), a fabricated SQL statement with no backing implementation, an actual dedup-guarantee bug in `take_row_ids`, and dozens of documentation-accuracy fixes verified against source rather than taken on faith -- each either fixed, or left with an explicit note on why it needs a feature or deployment owner's sign-off instead of being guessed at. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_018PXMCbRH6i5w47TsjeEUMT --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
103 lines
3.6 KiB
Plaintext
103 lines
3.6 KiB
Plaintext
---
|
|
title: REST API Reference
|
|
sidebarTitle: "Overview"
|
|
description: "API reference for LanceDB"
|
|
|
|
---
|
|
|
|
[Lance REST Namespace](https://lance.org/format/namespace/) spec
|
|
is an OpenAPI protocol that enables reading, writing and managing Lance tables by connecting
|
|
those metadata services or building a custom metadata server in a standardized way.
|
|
|
|
LanceDB Embedded allows you to interface with Lance tables via the REST Namespace.
|
|
LanceDB Enterprise provides an extended REST API with
|
|
additional endpoints for managing tables and data.
|
|
If you have specific needs or questions about the Enterprise REST API Namespace,
|
|
please [contact us](mailto:support@lancedb.com).
|
|
|
|
## Authentication {#authentication}
|
|
|
|
<Badge color="red">Enterprise</Badge>
|
|
|
|
All HTTP requests to LanceDB APIs must contain an <u>x-api-key</u> header that specifies a valid API key and
|
|
must be encoded as JSON or Arrow RPC.
|
|
|
|
To authenticate to the Enterprise REST API, you need the endpoint for your deployment and a valid API key for that deployment.
|
|
|
|
### Get your Enterprise credentials {#get-your-enterprise-credentials}
|
|
|
|
1. Obtain the following values from your LanceDB administrator or the LanceDB team that provisioned your Enterprise deployment:
|
|
- an API key
|
|
- your Enterprise REST endpoint
|
|
- your database name, if your deployment uses a private endpoint or `host_override`
|
|
|
|
2. Export those values in your terminal:
|
|
|
|
<CodeGroup>
|
|
```bash Bash icon="terminal"
|
|
export LANCEDB_API_KEY="<your-api-key>"
|
|
export LANCEDB_HOST_OVERRIDE="https://your-enterprise-endpoint.com"
|
|
export LANCEDB_DATABASE="your-database-name"
|
|
```
|
|
</CodeGroup>
|
|
|
|
`LANCEDB_HOST_OVERRIDE` is the endpoint the SDKs take as `host_override`; the
|
|
database name is the part of its `db://` URI after `db://`.
|
|
|
|
3. If your Enterprise deployment is private, connect through the private network endpoint provided for your deployment. For example, Azure Private Link deployments commonly use a private IP or an internal DNS name as the endpoint.
|
|
|
|
### Verify authentication {#verify-authentication}
|
|
|
|
4. Check that you can reach the deployment and list tables:
|
|
|
|
<CodeGroup>
|
|
```bash Bash icon="terminal"
|
|
curl -X GET "$LANCEDB_HOST_OVERRIDE/v1/table/" \
|
|
-H "x-api-key: $LANCEDB_API_KEY" \
|
|
-H "x-lancedb-database: $LANCEDB_DATABASE"
|
|
```
|
|
</CodeGroup>
|
|
|
|
The response lists one page of table names, with a token for the next page when
|
|
there are more.
|
|
|
|
If your deployment endpoint already includes the database host name, you can omit the `x-lancedb-database` header.
|
|
|
|
5. Create a table to confirm write access. Let's call it `words`. A table is
|
|
created from an Arrow IPC stream, which this writes with PyArrow:
|
|
|
|
<CodeGroup>
|
|
```bash Bash icon="terminal"
|
|
python -c "import pyarrow as pa, sys; t = pa.table({'word': ['hello', 'world']}); w = pa.ipc.new_stream(sys.stdout.buffer, t.schema); w.write_table(t); w.close()" > words.arrow
|
|
|
|
curl -X POST "$LANCEDB_HOST_OVERRIDE/v1/table/words/create" \
|
|
-H "Content-Type: application/vnd.apache.arrow.stream" \
|
|
-H "x-api-key: $LANCEDB_API_KEY" \
|
|
-H "x-lancedb-database: $LANCEDB_DATABASE" \
|
|
--data-binary @words.arrow
|
|
```
|
|
</CodeGroup>
|
|
|
|
6. Check that the table has been created:
|
|
|
|
<CodeGroup>
|
|
```bash Bash icon="terminal"
|
|
curl -X POST "$LANCEDB_HOST_OVERRIDE/v1/table/words/describe" \
|
|
-H "Content-Type: application/json" \
|
|
-H "x-api-key: $LANCEDB_API_KEY" \
|
|
-H "x-lancedb-database: $LANCEDB_DATABASE" \
|
|
-d '{}'
|
|
```
|
|
</CodeGroup>
|
|
|
|
That's it. You're connected! Now, you can start adding data and querying it.
|
|
You can visit the tutorial section to build your own applications with LanceDB.
|
|
|
|
<Card
|
|
title="Tutorials"
|
|
icon="book"
|
|
href="/tutorials/"
|
|
>
|
|
Check out our tutorials on building various applications with LanceDB.
|
|
</Card>
|