date: 2025-12-16
title: 'Spice v1.10.1 (Dec 15, 2025)'
type: blog
authors: [jeadie]
tags: [release, cayenne, acceleration, sdk, security]
Announcing the release of Spice v1.10.1! 🚀
v1.10.1 is a patch release with Cayenne accelerator improvements including configurable compression strategies and improved partition ID handling, isolated refresh runtime for better query API responsiveness, and security hardening. In addition, the GO SDK, gospice v8 has been released.
What's New in v1.10.1
Cayenne Accelerator Improvements
Several improvements and bug fixes for the Cayenne data accelerator (opens in a new tab):
- Compression Strategies: The new
cayenne_compression_strategy parameter enables choosing between zstd for compact storage or btrblocks for encoding-efficient compression.
- Improved Vortex Defaults: Aligned Cayenne to Vortex footer configuration for better compatibility.
- Partition ID Handling: Improved partition ID generation to avoid potential locking race conditions.
Example spicepod.yaml configuration:
datasets:
- from: s3://my-bucket/data.parquet
name: my_dataset
acceleration:
enabled: true
engine: cayenne
mode: file
params:
cayenne_compression_strategy: zstd # or btrblocks (default)
datasets:
- from: s3://my-bucket/data.parquet
name: my_dataset
acceleration:
enabled: true
engine: cayenne
mode: file
params:
cayenne_compression_strategy: zstd # or btrblocks (default)
For more details, refer to the Cayenne Data Accelerator Documentation (opens in a new tab).
Isolated Refresh Runtime
Refresh tasks now run on a separate Tokio runtime isolated from the main query API. This prevents long-running or resource-intensive refresh operations from impacting query latency and ensures the /health endpoint remains responsive during heavy refresh workloads.
Security Hardening
Multiple security improvements have been implemented:
- Recursion Depth Limits: Added limits to DynamoDB and S3 Vectors integrations to prevent stack overflow from deeply nested structures, mitigating potential DoS attacks.
- Spicepod Summary API: The GET
/v1/spicepods endpoint now returns summarized information instead of full spicepod.yaml representations, preventing potential sensitive information leakage.
Additional Improvements & Bug Fixes
- Performance: Fixed double hashing of user supplied cache keys, improving cache lookup efficiency.
- Reliability: Fixed idle DynamoDB Stream handling for more stable CDC operations.
- Reliability: Added warnings when multiple partitions are defined for the same table.
- Performance: Eagerly drop cached records for results larger than max cache size.
Spice Go SDK v8
The Spice Go SDK has been upgraded to v8 with a cleaner API, parameterized queries, and health check methods: gospice v8.0.0 (opens in a new tab).
Key Features:
- Cleaner API: New
Sql() and SqlWithParams() methods with more intuitive naming.
- Parameterized Queries: Safe, SQL-injection-resistant queries with automatic Go-to-Arrow type inference.
- Typed Parameters: Explicit type control with constructors like
Decimal128Param, TimestampParam, and more.
- Health Check Methods: New
IsSpiceHealthy() and IsSpiceReady() methods for instance monitoring.
- Upgraded Dependencies: Apache Arrow v18 and ADBC Go driver v1.3.0.
Example usage with a local Spice runtime:
import "github.com/spiceai/gospice/v8"
// Initialize client for local runtime
spice := gospice.NewSpiceClient()
defer spice.Close()
if err := spice.Init(
gospice.WithFlightAddress("grpc://localhost:50051"),
); err != nil {
panic(err)
}
// Parameterized query (safe from SQL injection)
reader, err := spice.SqlWithParams(
ctx,
"SELECT * FROM users WHERE id = $1 AND created_at > $2",
userId,
startTime,
)
import "github.com/spiceai/gospice/v8"
// Initialize client for local runtime
spice := gospice.NewSpiceClient()
defer spice.Close()
if err := spice.Init(
gospice.WithFlightAddress("grpc://localhost:50051"),
); err != nil {
panic(err)
}
// Parameterized query (safe from SQL injection)
reader, err := spice.SqlWithParams(
ctx,
"SELECT * FROM users WHERE id = $1 AND created_at > $2",
userId,
startTime,
)
Upgrade:
go get github.com/spiceai/gospice/v8@v8.0.0
go get github.com/spiceai/gospice/v8@v8.0.0
For more details, refer to the Go SDK Documentation (opens in a new tab).
Contributors
Breaking Changes
- GET
/v1/spicepods no longer returns the full spicepod.yaml JSON representation. A summary is returned instead. See #8404 (opens in a new tab).
Cookbook Updates
No major cookbook updates.
The Spice Cookbook (opens in a new tab) includes 82+ recipes to help you get started with Spice quickly and easily.
Upgrading
To upgrade to v1.10.1, use one of the following methods:
CLI:
Homebrew:
brew upgrade spiceai/spiceai/spice
brew upgrade spiceai/spiceai/spice
Docker:
Pull the spiceai/spiceai:1.10.1 image:
docker pull spiceai/spiceai:1.10.1
docker pull spiceai/spiceai:1.10.1
For available tags, see DockerHub (opens in a new tab).
Helm:
helm repo update
helm upgrade spiceai spiceai/spiceai
helm repo update
helm upgrade spiceai spiceai/spiceai
AWS Marketplace:
🎉 Spice is now available in the AWS Marketplace (opens in a new tab)!
What's Changed
Changelog