Skip to content

v0.5.0

Compare
Choose a tag to compare
@austin-denoble austin-denoble released this 08 Jun 19:59
· 60 commits to main since this release
257e9f6

Features

  • Optional configuration values for applying custom headers or metadata for REST or gRPC operations by @austin-denoble in #18
  • Configure apiKey, additionalHeaders, and host through environment variables by @austin-denoble in #22
  • Add error handling to REST operations in Client, add new PineconeError struct by @austin-denoble in #23

Additional Client Configuration options

You can now pass your own http.Client directly through NewClientParams with RestClient, along with setting Headers, and Host values. You can also pass metadata to the underlying gRPC client when creating an IndexConnection by using IndexWithAdditionalMetadata().

import (
"context"

"github.com/pinecone-io/go-pinecone/pinecone"
)

apiKey := "your-api-key"
headers := map[string]string{"X-Your-Header": "header-value"}
client, err := NewClient(NewClientParams{ApiKey: apiKey, Headers: headers})
if err != nil {
  return nil, err
}

// perform client operations
index := client.DescribeIndex(context.Background(), "my-index")

// create an IndexConnection with metadata
metadata := map[string]string{"X-Your-Header": "header-value"}
indexConn := client.IndexWithAdditionalMetadata(index.Host, "my-namespace", metadata)

// perform index operations
indexStats := indexConn.DescribeIndexStats(context.Background())

You can also use environment variables to set ApiKey, Headers, and Host:

  • PINECONE_API_KEY
  • PINECONE_ADDITIONAL_HEADERS
  • PINECONE_CONTROLLER_HOST

Values provided through the environment will be overwritten if you also pass them in NewClientParams to NewClient.

Fixes

  • Receive and pass context.Context by value rather than as a pointer in IndexConnection methods by @austin-denoble in #20

Chores

  • Add json marshaling annotations to various structs by @austin-denoble in #21
  • Bump getPackageVersion() to v0.5.0, and allow : in source tag normalization by @austin-denoble in #24

New Contributors

Full Changelog: v0.4.1...v0.5.0