date: 2026-05-01 title: 'Spice v2.0-rc.4 (Apr 30, 2026)' type: blog authors: [peasee] tags: [release, elasticsearch, data-connector, postgres, search, embedding, duckdb, azure, mcp]
Announcing the release of Spice v2.0-rc.4! 🚀
v2.0.0-rc.4 is the fourth release candidate for advanced testing of v2.0, building on v2.0.0-rc.3.
Highlights in this release candidate include:
The new Elasticsearch data connector enables querying Elasticsearch indexes as SQL tables with full hybrid search support. Currently available in Spice.ai Enterprise.
Key capabilities:
TableProvider.vector_search() UDTF against Elasticsearch-backed vector fields.text_search() UDTF for native Elasticsearch full-text queries.rrf() UDTF for reciprocal rank fusion.Example configuration:
Postgres datasets configured with refresh_mode: changes can now stream changes directly from PostgreSQL logical replication (WAL) into any local accelerator without Debezium or Kafka required.
Key capabilities:
pgoutput decoding to stream INSERT/UPDATE/DELETE events.spice_<dataset>_<hash>), so multi-replica deployments work automatically. Publications are shared.REPEATABLE READ snapshot seeds the accelerator before replication begins.LsnCommitter sends durable LSN back to Postgres so WAL segments are reclaimed.Example configuration:
Column-level embeddings now support list-of-string columns, producing one embedding vector per list element and enabling ColBERT-style late-interaction retrieval.
Key capabilities:
List<String> produce List<FixedSizeList<F32, D>> — one embedding per list element._match Column: Returns the specific list element that produced the highest cosine similarity.A new rerank() table-valued function reorders scored results from vector_search, text_search, or rrf by a reranker model's relevance judgements. See Search Functionality for an overview of search UDTFs.
Key capabilities:
LlmRerank adapter (listwise prompt by default; pointwise available).RerankExec physical node supports pushdown, reducing data movement.RerankerModelStore sits alongside ChatModelStore and EmbeddingModelStore; native providers (Cohere, Voyage, BGE) can be added without runtime plumbing changes.Two new enterprise-grade Secret Stores are now available.
HashiCorp Vault (hashicorp_vault):
token, approle, kubernetes, jwt.Azure Key Vault (azure_keyvault):
endpoint parameter.DuckDB-accelerated tables can now use DuckDB's HNSW index for vector search via the vector_engine: duckdb option, enabling fast approximate nearest-neighbor search without an external vector store.
Example configuration:
Azure Cosmos DB (Alpha):
A new read-only Azure Cosmos DB NoSQL / Core SQL API connector built on the azure_data_cosmos 0.30 SDK. Supports cross-partition scans, schema inference from document samples, and key-based auth (connection string or account endpoint + key).
Git Connector (RC):
The Git data connector is promoted to RC status with HTTPS/SSH auth (git_token, git_username/git_password, git_ssh_key), Git LFS support (enable_lfs), and per-repo connection resilience (semaphore, bounded retries with exponential backoff, permanent-error circuit breaking).
DynamoDB datasets now support write-back via INSERT, UPDATE, and DELETE operations, complementing the existing read and CDC streaming capabilities.
The MCP server has been upgraded to rmcp 1.5.0 and switched to the Streamable HTTP transport (/v1/mcp), replacing the previous SSE-based endpoint. The client-side transport is updated to StreamableHttpClientTransport.
Read-only API Key Enforcement: API keys with read-only scope are now strictly enforced on the Flight DoGet path and on async query endpoints, preventing write operations from being issued under a read-only key.
GitHub Workflow Hardening: CI workflows have been hardened with improved security posture to reduce supply-chain risk.
spice init Improvements: Written spicepods now include a yaml-language-server: $schema=... directive for IDE completions. Creation messages print regardless of log level.RUST_LOG when -v is not passed; version banner moves to stderr and prints only on an interactive TTY.PermissionDenied variant; 401 messages point at spice login / SPICE_API_KEY.See Observability & Monitoring and the runtime.telemetry reference for full configuration details.
runtime.telemetry.metric_prefix.runtime.telemetry.properties are applied as OTLP resource attributes on exported metrics.Tantivy full-text search ingestion performance is significantly improved with better batch handling and a rollback-on-error path.
flatten_json / json_tree / expand_maps UDTFs: New table-valued functions for JSON transformation, map expansion, and schema decomposition in query pipelines. See JSON Functions and Operators.cosine_distance Pushdown to DuckDB: cosine_distance is now pushed down to DuckDB accelerators via array_cosine_distance.OBJECT, MAP, GEOGRAPHY, GEOMETRY, VECTOR, and TIMESTAMP_LTZ types in the Snowflake connector.| Dependency / Component | Version / Update |
|---|---|
| DataFusion | Updated |
| rmcp | v1.5.0 (from fork pin) |
| mistral.rs | Updated |
| openssl | 0.10.78 |
No breaking changes.
No new cookbook recipes.
The Spice Cookbook includes 86 recipes to help you get started with Spice quickly and easily.
To upgrade to v2.0.0-rc.4, use one of the following methods:
CLI:
Homebrew:
Docker:
Pull the spiceai/spiceai:2.0.0-rc.4 image:
For available tags, see DockerHub.
Helm:
AWS Marketplace:
Spice is available in the AWS Marketplace.
{name: expr} for partition_by by @lukekim in #10352Full Changelog: https://github.com/spiceai/spiceai/compare/v2.0.0-rc.3...v2.0.0-rc.4
mysql_zero_date_behaviornullerror0000-00-00connect_timeout and client_timeout parameters for sql_warehouse mode.runtime-cluster crate + Run partition discovery before forwarding refresh to executors by @krinart in #10490private_key in connector PARAMETERS (fixes #10517) by @claudespice in #10559cosine_distance pushdown to DuckDB accelerator via array_cosine_distance by @sgrebnov in #10564