Skip to content

Conversation

@u-sheikh
Copy link

@u-sheikh u-sheikh commented Dec 28, 2025

S3 URL Style Configuration for DuckDB Offline Store
The Problem

When using DuckDB as an offline store with S3-compatible storage systems (like MinIO, LocalStack, or other self-hosted S3 alternatives), authentication failures occur because these systems require a different URL addressing style than AWS S3.

AWS S3 uses two URL styles:

Virtual-hosted style (default): https://bucket-name.s3.region.amazonaws.com/key
Path style: https://s3.region.amazonaws.com/bucket-name/key

S3-compatible providers like MinIO and LocalStack require path-style URLs, but Feast's DuckDB integration didn't expose this configuration option.
The Solution

This feature adds a new s3_url_style configuration parameter that can be set to "path" to enable path-style URL formatting when communicating with S3-compatible storage.

#5597

This change enables Feast to transmit the s3_url_style='path' parameter
to DuckDB during initialization, facilitating compatibility with
S3-compatible providers like MinIO and LocalStack that require
path-style URL formatting.

Changes include:
- Add s3_url_style field to DataSource.proto FileOptions
- Add s3_url_style field to FeatureService.proto FileDestination
- Add staging_location_s3_url_style to DuckDBOfflineStoreConfig
- Add s3_url_style to FileSource, FileOptions, SavedDatasetFileStorage,
  and FileLoggingDestination classes
- Create _build_s3_storage_options helper function for consistent
  storage_options dict construction
- Update IbisRetrievalJob to support s3_url_style in to_remote_storage()
- Update integration tests to use s3_url_style='path' for MinIO

Closes feast-dev#5597
@u-sheikh u-sheikh requested a review from a team as a code owner December 28, 2025 15:46
@u-sheikh u-sheikh changed the title Added: s3_url_style configuration for DuckDB offline store Added: s3_url_style configuration for DuckDB offline store #5597 Dec 28, 2025
@HaoXuAI
Copy link
Collaborator

HaoXuAI commented Dec 30, 2025

It looks like you tried to use newer version of proto lib to generate protos. please try to use the same version. other than that it looks good

@u-sheikh u-sheikh force-pushed the claude/add-robust-feature-EAOTc branch from cecef98 to b051bdd Compare December 30, 2025 21:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants