# Vectors

Vector store constructors now require an `id` property, and vector store methods have been renamed to follow consistent naming conventions.

## Changed

### Required `id` property for vector store instances

Vector store instances now require an `id` property. This unique identifier is used for tracking and managing vector store instances within Mastra. The `id` should be a descriptive, unique string for each vector store in your application.

To migrate, add an `id` field to your vector store constructor.

```diff
const vectorStore = new PgVector({
+   id: 'main-vector-store',
    connectionString: process.env.POSTGRES_CONNECTION_STRING,
  });

  const chromaStore = new ChromaVector({
+   id: 'chroma-embeddings',
    url: process.env.CHROMA_URL,
  });

  const pineconeStore = new PineconeVector({
+   id: 'pinecone-production',
    apiKey: process.env.PINECONE_API_KEY,
  });
```

### `getVectors` to `listVectors`

The `getVectors()` method has been renamed to `listVectors()`. This change aligns with the naming convention used across the API where plural getter methods use the `list` prefix.

To migrate, replace all calls to `getVectors()` with `listVectors()`.

```diff
const vectorStore = new VectorStore({ ... });

- const vectors = await vectorStore.getVectors({ ... });
+ const vectors = await vectorStore.listVectors({ ... });
```

### `LibSQLVector`: `connectionUrl` to `url`

The `connectionUrl` parameter has been renamed to `url` to align with the `@libsql/client` API and match LibSQLStorage.

```diff
const vectorStore = new LibSQLVector({
    id: 'my-vector',
-   connectionUrl: 'file:./db.sqlite',
+   url: 'file:./db.sqlite',
  });
```

### `OpenSearchVector`: `url` to `node`

The `url` parameter has been renamed to `node` to match the OpenSearch `ClientOptions` API. The constructor now accepts all OpenSearch client options including authentication, SSL, and compression.

```diff
const vectorStore = new OpenSearchVector({
    id: 'my-vector',
-   url: 'http://localhost:9200',
+   node: 'http://localhost:9200',
  });
```

### `PineconeVector`: `environment` removed

The `environment` parameter has been removed. Use `controllerHostUrl` instead if you need to specify a custom controller host. The constructor now accepts all Pinecone configuration options.

```diff
const vectorStore = new PineconeVector({
    id: 'my-vector',
    apiKey: process.env.PINECONE_API_KEY,
-   environment: process.env.PINECONE_ENVIRONMENT,
  });
```

If you need a custom controller host:

```ts
const vectorStore = new PineconeVector({
  id: 'my-vector',
  apiKey: process.env.PINECONE_API_KEY,
  controllerHostUrl: 'https://api.pinecone.io',
})
```