From fc3636bb7a68a1dcbeffc88093d45abd6bc8de8c Mon Sep 17 00:00:00 2001 From: Garvit Gupta Date: Wed, 21 Aug 2024 09:09:10 -0500 Subject: [PATCH 1/2] VS-269: Add content-type header to Vectorize POST operations --- .changeset/rare-cooks-marry.md | 5 +++++ packages/wrangler/src/vectorize/client.ts | 16 +++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 .changeset/rare-cooks-marry.md diff --git a/.changeset/rare-cooks-marry.md b/.changeset/rare-cooks-marry.md new file mode 100644 index 000000000000..ba17d7249acb --- /dev/null +++ b/.changeset/rare-cooks-marry.md @@ -0,0 +1,5 @@ +--- +"wrangler": patch +--- + +fix(6516): Add content-type header to Vectorize POST operations diff --git a/packages/wrangler/src/vectorize/client.ts b/packages/wrangler/src/vectorize/client.ts index 9289d1416937..f61713538ed0 100644 --- a/packages/wrangler/src/vectorize/client.ts +++ b/packages/wrangler/src/vectorize/client.ts @@ -141,7 +141,9 @@ export async function queryIndex( `/accounts/${accountId}/vectorize/v2/indexes/${indexName}/query`, { method: "POST", - headers: { "Content-Type": "application/json" }, + headers: { + "content-type": jsonContentType, + }, body: JSON.stringify({ ...options, vector: Array.isArray(vector) ? vector : Array.from(vector), @@ -161,6 +163,9 @@ export async function getByIds( `/accounts/${accountId}/vectorize/v2/indexes/${indexName}/get_by_ids`, { method: "POST", + headers: { + "content-type": jsonContentType, + }, body: JSON.stringify(ids), } ); @@ -177,6 +182,9 @@ export async function deleteByIds( `/accounts/${accountId}/vectorize/v2/indexes/${indexName}/delete_by_ids`, { method: "POST", + headers: { + "content-type": jsonContentType, + }, body: JSON.stringify(ids), } ); @@ -207,6 +215,9 @@ export async function createMetadataIndex( `/accounts/${accountId}/vectorize/v2/indexes/${indexName}/metadata_index/create`, { method: "POST", + headers: { + "content-type": jsonContentType, + }, body: JSON.stringify(payload), } ); @@ -237,6 +248,9 @@ export async function deleteMetadataIndex( `/accounts/${accountId}/vectorize/v2/indexes/${indexName}/metadata_index/delete`, { method: "POST", + headers: { + "content-type": jsonContentType, + }, body: JSON.stringify(payload), } ); From e3c5c96d42ae4aff2303830bfdfe78943f6ff169 Mon Sep 17 00:00:00 2001 From: Garvit Gupta Date: Wed, 21 Aug 2024 11:48:52 -0500 Subject: [PATCH 2/2] VS-271: Fix Vectorize getVectors, deleteVectors payload in Wrangler Client --- .changeset/big-deers-visit.md | 5 +++++ .changeset/rare-cooks-marry.md | 2 +- packages/wrangler/src/vectorize/client.ts | 5 +++-- packages/wrangler/src/vectorize/deleteByIds.ts | 8 +++++++- packages/wrangler/src/vectorize/getByIds.ts | 8 +++++++- packages/wrangler/src/vectorize/types.ts | 8 ++++++++ 6 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 .changeset/big-deers-visit.md diff --git a/.changeset/big-deers-visit.md b/.changeset/big-deers-visit.md new file mode 100644 index 000000000000..513bb197aa22 --- /dev/null +++ b/.changeset/big-deers-visit.md @@ -0,0 +1,5 @@ +--- +"wrangler": patch +--- + +fix: Fix Vectorize getVectors, deleteVectors payload in Wrangler Client; VS-271 diff --git a/.changeset/rare-cooks-marry.md b/.changeset/rare-cooks-marry.md index ba17d7249acb..e3fc1cd794c8 100644 --- a/.changeset/rare-cooks-marry.md +++ b/.changeset/rare-cooks-marry.md @@ -2,4 +2,4 @@ "wrangler": patch --- -fix(6516): Add content-type header to Vectorize POST operations +fix: Add content-type header to Vectorize POST operations; #6516/VS-269 diff --git a/packages/wrangler/src/vectorize/client.ts b/packages/wrangler/src/vectorize/client.ts index f61713538ed0..63d0af18c481 100644 --- a/packages/wrangler/src/vectorize/client.ts +++ b/packages/wrangler/src/vectorize/client.ts @@ -12,6 +12,7 @@ import type { VectorizeMetadataIndexPropertyName, VectorizeQueryOptions, VectorizeVector, + VectorizeVectorIds, VectorizeVectorMutation, } from "./types"; import type { FormData } from "undici"; @@ -155,7 +156,7 @@ export async function queryIndex( export async function getByIds( config: Config, indexName: string, - ids: Array + ids: VectorizeVectorIds ): Promise { const accountId = await requireAuth(config); @@ -174,7 +175,7 @@ export async function getByIds( export async function deleteByIds( config: Config, indexName: string, - ids: Array + ids: VectorizeVectorIds ): Promise { const accountId = await requireAuth(config); diff --git a/packages/wrangler/src/vectorize/deleteByIds.ts b/packages/wrangler/src/vectorize/deleteByIds.ts index 4beee68c2160..ee8a3415f2c2 100644 --- a/packages/wrangler/src/vectorize/deleteByIds.ts +++ b/packages/wrangler/src/vectorize/deleteByIds.ts @@ -6,6 +6,7 @@ import type { CommonYargsArgv, StrictYargsOptionsToInterface, } from "../yargs-types"; +import type { VectorizeVectorIds } from "./types"; export function options(yargs: CommonYargsArgv) { return yargs @@ -37,7 +38,12 @@ export async function handler( } logger.log(`📋 Deleting vectors...`); - const mutation = await deleteByIds(config, args.name, args.ids); + + const ids: VectorizeVectorIds = { + ids: args.ids, + }; + + const mutation = await deleteByIds(config, args.name, ids); logger.log( `✅ Successfully enqueued ${args.ids.length} vectors into index '${args.name}' for deletion. Mutation changeset identifier: ${mutation.mutationId}.` diff --git a/packages/wrangler/src/vectorize/getByIds.ts b/packages/wrangler/src/vectorize/getByIds.ts index 7422b2089d25..8f27fa015de7 100644 --- a/packages/wrangler/src/vectorize/getByIds.ts +++ b/packages/wrangler/src/vectorize/getByIds.ts @@ -6,6 +6,7 @@ import type { CommonYargsArgv, StrictYargsOptionsToInterface, } from "../yargs-types"; +import type { VectorizeVectorIds } from "./types"; export function options(yargs: CommonYargsArgv) { return yargs @@ -37,7 +38,12 @@ export async function handler( } logger.log(`📋 Fetching vectors...`); - const vectors = await getByIds(config, args.name, args.ids); + + const ids: VectorizeVectorIds = { + ids: args.ids, + }; + + const vectors = await getByIds(config, args.name, ids); if (vectors.length === 0) { logger.warn( diff --git a/packages/wrangler/src/vectorize/types.ts b/packages/wrangler/src/vectorize/types.ts index 778b0a26e044..7fd7f6ffa62f 100644 --- a/packages/wrangler/src/vectorize/types.ts +++ b/packages/wrangler/src/vectorize/types.ts @@ -138,6 +138,14 @@ export interface VectorizeVectorMutation { count: number; } +/** + * Request type used to pass vector ids to fetch or delete. + */ +export interface VectorizeVectorIds { + /* List of vector ids that are fetched or deleted. */ + ids: string[]; +} + /** * Result type indicating a mutation on the Vectorize Index. * Actual mutations are processed async where the `mutationId` is the unique identifier for the operation.