Skip to content

[❇️] [TZF-260079]: : Add LanceDB table explorer for administrators #79

Description

@recursivezero

Description

Summary

Add an admin-only page to inspect LanceDB tables and their contents directly from the application. This will simplify debugging embeddings, validating image metadata, and troubleshooting search issues without requiring direct access to the server.

Motivation

During debugging we had to:

Verify table metadata

Inspect stored vectors and image URIs

Validate tags and hashes

Confirm embedding metadata exists

Check migrated records after URL updates

This currently requires Python scripts and direct filesystem access. An internal admin UI would make these tasks significantly easier.

Scope

Backend (Python)

Create secure admin endpoints for LanceDB inspection.

Suggested endpoints:

  • GET /admin/lancedb/tables

List all LanceDB tables.

  • GET /admin/lancedb/{table}

Return table information:

row count

schema

metadata

embedding function metadata

vector dimension

  • GET /admin/lancedb/{table}/rows

Paginated rows.

Support:

page

pageSize

sort

filtering

  • GET /admin/lancedb/{table}/row/{id} (optional)

View complete record.

Frontend (React)

Create an Admin → LanceDB Explorer page.

Features:

  1. Table selector
  2. Row count
  3. Schema viewer
  4. Metadata viewer
  5. Paginated data grid
  6. Search/filter
  7. Sort columns
  8. Copy row JSON
  9. Refresh table

Table columns

Display:

  1. image_uri
  2. tag
  3. hash
  4. mtime
  5. vector (collapsed by default)

Large vectors should not be expanded automatically.

Instead show:

vector length

expandable JSON

copy button

Metadata section

Display:

embedding function metadata

vector dimension

source column

vector column

Example:

{
  "embedding_functions": [
    {
      "name": "siglip",
      "source_column": "image_uri",
      "vector_column": "vector"
    }
  ]
}

Security

Admin users only.

Reuse existing authentication/authorization.

Never expose this page publicly.

UX

Server-side pagination

Loading state

Empty state

Error state

Copy-to-clipboard actions

Responsive layout

Future Enhancements

Delete row

Recompute embeddings

Edit metadata

Export rows as CSV/JSON

Compare two LanceDB tables

View vector statistics

Similarity search directly from the UI

Trigger table maintenance (optimize, vacuum, rebuild indexes)

Acceptance Criteria

[ ] Admin-only access

[ ] List all LanceDB tables

[ ] View schema and metadata

[ ] View paginated table rows

[ ] Filter by tag

[ ] Sort by columns

[ ] Collapse large vector fields

[ ] Copy row JSON

[ ] Display embedding function metadata

[ ] Works with large tables without loading everything into memory

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

developmentBranch created for this issue

Projects

  • Status
    In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions