Skip to content

Add Qdrant REST support to the JavaScript SDK - #662

Open
jkorrr wants to merge 1 commit into
arakoodev:tsfrom
jkorrr:bounty/273-qdrant-support
Open

jkorrr wants to merge 1 commit into
arakoodev:tsfrom
jkorrr:bounty/273-qdrant-support

Conversation

@jkorrr

@jkorrr jkorrr commented Sep 17, 2026

Copy link
Copy Markdown

Adds Qdrant support to the JavaScript SDK through the existing @arakoodev/edgechains.js/vector-db export. Callers can store and query vectors using Qdrant's REST API through a Qdrant class, without installing a Qdrant client package.

Fixes #273

/claim #273

Changes

  • Adds collection management, dense and named vector upserts, filtered nearest-neighbor queries, retrieval, payload updates and point deletion.
  • Validates inputs and response envelopes, supports API-key headers, refuses redirects, and bounds response headers and body reads with a request deadline.
  • Adds unit and live-database tests, usage documentation, and JS/edgechains/examples/qdrant-search, which imports the public SDK export and removes its uniquely named collection after execution.

The SDK now lives under JS/edgechains/arakoodev; this change uses that current package location rather than the older lib path linked in the issue.

Validation

Verified locally with Node 22.23.2, npm 10.9.8, Vitest 2.1.9 and Qdrant 1.15.5:

  • npm run build in JS/edgechains/arakoodev: passed.
  • node_modules/.bin/vitest run src/vector-db/src/tests/qdrant --reporter=verbose with QDRANT_URL pointing to the local server: 64 unit tests and two live integration tests passed.
  • npm start in JS/edgechains/examples/qdrant-search: passed using the public package export; the database document ranked above the music document.
  • Full upstream suite: 15 failing files, comprising 12 collection/setup errors and three failing scraper tests. An untouched archive of base commit d924dd4fec3f310cd7fef88dbf1390ee4b29f4a5, using identical dependencies, reproduced all 15 failures. These include Jest globals under Vitest, stale OpenAI import paths, missing browser/runtime prerequisites and an external HTTP 403. The full upstream suite is not passing.

Focused coverage includes ID zero, UUIDs, Unicode, dense/named vectors, filters, thresholds, pagination, payload/vector flags, empty results, writes and deletions, dimension errors, invalid numeric values, HTTP errors, malformed responses, deadlines and timer cleanup.

Demo

The 30-second qdrant-demo.mp4 is a rendered playback of captured output from the actual local tests and example. It is not a screen recording.

Scope and limitations

Sparse vectors, multivectors, hybrid queries, automatic retries and a Supabase compatibility facade are outside this change. Qdrant validates UUID syntax and collection dimensions. A timed-out write may already have applied; the documentation advises callers to reconcile its outcome before retrying.

AI assistance

The implementation, tests, documentation and this description were prepared with OpenAI Codex assistance. The validation results above come from local automated runs; an independent AI code review also found no blocking defect.

qdrant-demo.mp4

@github-actions

github-actions Bot commented Sep 17, 2026

Copy link
Copy Markdown

CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅

@jkorrr

jkorrr commented Sep 17, 2026

Copy link
Copy Markdown
Author

I have read the Arakoo CLA Document and I hereby sign the CLA

@jkorrr

jkorrr commented Sep 17, 2026

Copy link
Copy Markdown
Author

recheck

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

BOUNTY: add support for qdrant vector database in javascript sdk

1 participant