Skip to content

Commit 4d386cd

Browse files
committed
vectors - lance path from vector bucket
Signed-off-by: Amit Prinz Setter <alphaprinz@gmail.com>
1 parent 19788c9 commit 4d386cd

File tree

6 files changed

+156
-208
lines changed

6 files changed

+156
-208
lines changed

src/endpoint/vector/ops/vector_bucket_create.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,21 @@ const dbg = require('../../../util/debug_module')(__filename);
88
*/
99
async function post_vector_bucket(req, res) {
1010

11-
dbg.log0("post_vector_bucket body =", req.body);
11+
dbg.log0("post_vector_bucket body =", req.body, ", headers =", req.headers);
12+
13+
const ns_name = req.headers['x-noobaa-custom-ns'];
14+
const subpath = req.headers['x-noobaa-custom-subpath'];
15+
16+
const namespace_resource = {
17+
resource: ns_name,
18+
path: subpath //not to be confused with nsr path
19+
};
1220

1321
const vector_bucket_name = req.body.vectorBucketName;
14-
await req.vector_sdk.create_vector_bucket({ vector_bucket_name });
22+
await req.vector_sdk.create_vector_bucket({
23+
vector_bucket_name,
24+
namespace_resource,
25+
});
1526
}
1627

1728
exports.handler = post_vector_bucket;

src/endpoint/vector/vector_rest.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,11 @@ async function handle_request(req, res) {
188188

189189
//init vector_sdk here to avoid creating this object for s3 reqs that don't need it
190190
//TODO - find a better place to get BS?
191-
req.vector_sdk = new VectorSDK({bucketspace: req.object_sdk._get_bucketspace()});
192-
await req.vector_sdk.load_vector_bucket_and_index(req, op);
191+
req.vector_sdk = new VectorSDK({
192+
bucketspace: req.object_sdk._get_bucketspace(),
193+
req
194+
});
195+
await req.vector_sdk.load_vector_bucket_and_index(op);
193196
const reply = await op.handler.handler(req, res);
194197
dbg.log0("VECTOR reply =", reply);
195198

src/sdk/vector_sdk.js

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,13 @@
11
/* Copyright (C) 2026 NooBaa */
22
'use strict';
33

4-
const _ = require('lodash');
5-
64
const vector_utils = require("../util/vectors_util");
75

86
class VectorSDK {
97

10-
11-
/**
12-
* @param {{
13-
* bucketspace?: nb.BucketSpace;
14-
* }} args
15-
*/
16-
constructor({ bucketspace }) {
8+
constructor({ bucketspace, req }) {
179
this.bucketspace = bucketspace;
10+
this.req = req;
1811
}
1912

2013
/**
@@ -25,15 +18,15 @@ class VectorSDK {
2518
}
2619

2720
//load the vector bucket and index (if handling the op requries it)
28-
async load_vector_bucket_and_index(req, op) {
21+
async load_vector_bucket_and_index(op) {
2922
if (!op.load_vector_bucket) return;
3023
const params = {
31-
vector_bucket_name: req.body.vectorBucketName
24+
vector_bucket_name: this.req.body.vectorBucketName
3225
};
33-
req.vector_bucket = await this.get_vector_bucket(params);
26+
this.req.vector_bucket = await this.get_vector_bucket(params);
3427
if (!op.load_vector_index) return;
35-
params.vector_index_name = req.body.indexName;
36-
req.vector_index = await this.get_vector_index(params);
28+
params.vector_index_name = this.req.body.indexName;
29+
this.req.vector_index = await this.get_vector_index(params);
3730
}
3831

3932
//////////////////////////
@@ -43,7 +36,6 @@ class VectorSDK {
4336
async create_vector_bucket(params) {
4437
const bs = this._get_bucketspace();
4538
await bs.create_vector_bucket(params);
46-
await vector_utils.create_vector_bucket(params);
4739
}
4840

4941
async get_vector_bucket(params) {
@@ -54,7 +46,7 @@ class VectorSDK {
5446
async delete_vector_bucket(params) {
5547
const bs = this._get_bucketspace();
5648
await bs.delete_vector_bucket(params);
57-
await vector_utils.delete_vector_bucket(params);
49+
vector_utils.delete_vector_bucket(this.req.vector_bucket);
5850
}
5951

6052
async list_vector_buckets(params) {
@@ -70,7 +62,7 @@ class VectorSDK {
7062
async create_vector_index(params) {
7163
const bs = this._get_bucketspace();
7264
await bs.create_vector_index(params);
73-
await vector_utils.create_vector_index(params);
65+
await vector_utils.create_vector_index(this.req.vector_bucket, this.req.vector_index, params);
7466
}
7567

7668
async get_vector_index(params) {
@@ -86,28 +78,27 @@ class VectorSDK {
8678
async delete_vector_index(params) {
8779
const bs = this._get_bucketspace();
8880
await bs.delete_vector_index(params);
89-
await vector_utils.delete_vector_index(params);
81+
await vector_utils.delete_vector_index(this.req.vector_bucket, this.req.vector_index);
9082
}
9183

9284
//////////////////////////
9385
// VECTORS //
9486
//////////////////////////
9587

9688
async put_vectors(params) {
97-
params.vector_index = await this.get_vector_index(_.pick(params, 'vector_bucket_name', 'vector_index_name'));
98-
return await vector_utils.put_vectors(params);
89+
return await vector_utils.put_vectors(this.req.vector_bucket, this.req.vector_index, params.vectors);
9990
}
10091

10192
async list_vectors(params) {
102-
return await vector_utils.list_vectors(params);
93+
return await vector_utils.list_vectors(this.req.vector_bucket, this.req.vector_index, params);
10394
}
10495

10596
async delete_vectors(params) {
106-
await vector_utils.delete_vectors(params);
97+
await vector_utils.delete_vectors(this.req.vector_bucket, this.req.vector_index, params.keys);
10798
}
10899

109100
async query_vectors(params) {
110-
return await vector_utils.query_vectors(params);
101+
return await vector_utils.query_vectors(this.req.vector_bucket, this.req.vector_index, params);
111102
}
112103

113104
//////////////////////////////

src/server/system_services/bucket_server.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2361,14 +2361,16 @@ function find_vector_index(req, vector_bucket_name, vector_index_name) {
23612361
}
23622362

23632363
function get_vector_bucket_info(vector_bucket) {
2364+
const nsr = pool_server.get_namespace_resource_info(vector_bucket.namespace_resource.resource);
2365+
23642366
const info = {
23652367
name: vector_bucket.name,
23662368
owner_account: get_owner_account_info(vector_bucket.owner_account),
23672369
creation_time: vector_bucket.creation_time,
23682370
vector_db_type: vector_bucket.vector_db_type,
2369-
namespace_resource: vector_bucket.namespace_resource && {
2371+
namespace_resource: {
23702372
...vector_bucket.namespace_resource,
2371-
resource: pool_server.get_namespace_resource_info(vector_bucket.namespace_resource.resource).name
2373+
resource: nsr.name,
23722374
},
23732375
bucket_claim: vector_bucket.bucket_claim,
23742376
tags: vector_bucket.tags,

0 commit comments

Comments
 (0)