@@ -38,21 +38,81 @@ const RPC_ERRORS_TO_VECTOR = Object.freeze({ //TODO - validate
3838} ) ;
3939
4040const VECTOR_OPS = js_utils . deep_freeze ( {
41- CreateVectorBucket : require ( './ops/vector_bucket_create' ) ,
42- GetVectorBucket : require ( './ops/vector_bucket_get' ) ,
43- DeleteVectorBucket : require ( './ops/vector_bucket_delete' ) ,
44- ListVectorBuckets : require ( './ops/vector_list_vector_buckets' ) ,
45- CreateIndex : require ( './ops/vector_index_create' ) ,
46- GetIndex : require ( './ops/vector_index_get' ) ,
47- ListIndexes : require ( './ops/vector_index_list' ) ,
48- DeleteIndex : require ( './ops/vector_index_delete' ) ,
49- PutVectors : require ( './ops/vector_put_vectors' ) ,
50- ListVectors : require ( './ops/vector_list_vectors' ) ,
51- QueryVectors : require ( './ops/vector_query_vectors' ) ,
52- DeleteVectors : require ( './ops/vector_delete_vectors' ) ,
53- PutVectorBucketPolicy : require ( './ops/vector_put_vector_bucket_policy' ) ,
54- GetVectorBucketPolicy : require ( './ops/vector_get_vector_bucket_policy' ) ,
55- DeleteVectorBucketPolicy : require ( './ops/vector_delete_vector_bucket_policy' ) ,
41+ CreateVectorBucket : {
42+ handler : require ( './ops/vector_bucket_create' ) ,
43+ load_vector_bucket : false ,
44+ load_vector_index : false ,
45+ } ,
46+ GetVectorBucket : {
47+ handler : require ( './ops/vector_bucket_get' ) ,
48+ load_vector_bucket : true ,
49+ load_vector_index : false ,
50+ } ,
51+ DeleteVectorBucket : {
52+ handler : require ( './ops/vector_bucket_delete' ) ,
53+ load_vector_bucket : true ,
54+ load_vector_index : false ,
55+ } ,
56+ ListVectorBuckets : {
57+ handler : require ( './ops/vector_list_vector_buckets' ) ,
58+ load_vector_bucket : false ,
59+ load_vector_index : false ,
60+ } ,
61+ CreateIndex : {
62+ handler : require ( './ops/vector_index_create' ) ,
63+ load_vector_bucket : true ,
64+ load_vector_index : false ,
65+ } ,
66+ GetIndex : {
67+ handler : require ( './ops/vector_index_get' ) ,
68+ load_vector_bucket : true ,
69+ load_vector_index : true ,
70+ } ,
71+ ListIndexes : {
72+ handler : require ( './ops/vector_index_list' ) ,
73+ load_vector_bucket : true ,
74+ load_vector_index : false ,
75+ } ,
76+ DeleteIndex : {
77+ handler : require ( './ops/vector_index_delete' ) ,
78+ load_vector_bucket : true ,
79+ load_vector_index : true ,
80+ } ,
81+ PutVectors : {
82+ handler : require ( './ops/vector_put_vectors' ) ,
83+ load_vector_bucket : true ,
84+ load_vector_index : true ,
85+ } ,
86+ ListVectors : {
87+ handler : require ( './ops/vector_list_vectors' ) ,
88+ load_vector_bucket : true ,
89+ load_vector_index : true ,
90+ } ,
91+ QueryVectors : {
92+ handler : require ( './ops/vector_query_vectors' ) ,
93+ load_vector_bucket : true ,
94+ load_vector_index : true ,
95+ } ,
96+ DeleteVectors : {
97+ handler : require ( './ops/vector_delete_vectors' ) ,
98+ load_vector_bucket : true ,
99+ load_vector_index : true ,
100+ } ,
101+ PutVectorBucketPolicy : {
102+ handler : require ( './ops/vector_put_vector_bucket_policy' ) ,
103+ load_vector_bucket : true ,
104+ load_vector_index : false ,
105+ } ,
106+ GetVectorBucketPolicy : {
107+ handler : require ( './ops/vector_get_vector_bucket_policy' ) ,
108+ load_vector_bucket : true ,
109+ load_vector_index : false ,
110+ } ,
111+ DeleteVectorBucketPolicy : {
112+ handler : require ( './ops/vector_delete_vector_bucket_policy' ) ,
113+ load_vector_bucket : true ,
114+ load_vector_index : false ,
115+ } ,
56116} ) ;
57117
58118async function vector_rest ( req , res ) {
@@ -121,22 +181,24 @@ async function handle_request(req, res) {
121181
122182 http_utils . authorize_session_token ( req , headers_options ) ;
123183 authenticate_request ( req ) ;
124- await authorize_request ( req ) ;
184+ await req . object_sdk . load_requesting_account ( req ) ;
185+ await req . object_sdk . authorize_request_account ( req ) ;
125186
126187 dbg . log1 ( 'VECTOR REQUEST' , req . method , req . originalUrl , 'op' , op_name , 'request_id' , req . request_id , req . headers ) ;
127188
128189 //init vector_sdk here to avoid creating this object for s3 reqs that don't need it
129190 //TODO - find a better place to get BS?
130191 req . vector_sdk = new VectorSDK ( { bucketspace : req . object_sdk . _get_bucketspace ( ) } ) ;
131- const reply = await op . handler ( req , res ) ;
192+ await req . vector_sdk . load_vector_bucket_and_index ( req , op ) ;
193+ const reply = await op . handler . handler ( req , res ) ;
132194 dbg . log0 ( "VECTOR reply =" , reply ) ;
133195
134196 http_utils . send_reply ( req , res , reply , options ) ;
135197}
136198
137199function authenticate_request ( req ) {
138200 try {
139- signature_utils . authenticate_request_by_service ( req , req . account_sdk ) ;
201+ signature_utils . authenticate_request_by_service ( req , req . object_sdk ) ;
140202 } catch ( err ) {
141203 dbg . error ( 'authenticate_request: ERROR' , err . stack || err ) ;
142204 if ( err . code ) {
@@ -147,12 +209,6 @@ function authenticate_request(req) {
147209 }
148210}
149211
150- // authorize_request_account authorizes the account of the requester
151- async function authorize_request ( req ) {
152- await req . account_sdk . load_requesting_account ( req ) ;
153- req . account_sdk . authorize_request_account ( req ) ;
154- }
155-
156212function handle_error ( req , res , err ) {
157213 const vector_err =
158214 ( ( err instanceof VectorError ) && err ) ||
0 commit comments