Core Concepts
Understanding the following entities is essential for working with Delta Sharing:Share
A Share is a logical grouping used to organize data for recipients. Key characteristics:- Can be shared with one or multiple recipients
- Recipients can access all resources within a share
- May contain multiple schemas
- Identified by a unique name and optional UUID
Shares provide the top-level access control boundary. All tables within a share are accessible to recipients who have access to that share.
Schema
A Schema is a logical grouping of tables within a share. It provides an additional organizational layer similar to database schemas in traditional systems.- Each schema belongs to exactly one share
- Can contain multiple tables
- Names must be unique within a share
Table
A Table represents a Delta Lake table or a view on top of a Delta Lake table. Tables contain the actual data being shared. Table Metadata:- name: The table identifier
- id: Optional UUID that stays immutable through the table’s lifecycle
- location: Root directory where the delta log exists (required for directory-based access)
- auxiliaryLocations: Optional array of additional storage locations for table files
- accessModes: Array indicating supported access modes (
url,dir, or both)
Recipient
A Recipient is a principal that possesses a bearer token to access shared tables. Recipients authenticate using bearer tokens included in HTTP request headers.Access Modes
Delta Sharing supports two methods for clients to read table data:- URL-based Access
- Directory-based Access
URL-based Access (
url)The server returns pre-signed URLs for individual data files. Clients fetch files via the Query Table API.Benefits:- Simple implementation
- Works with any HTTP client
- No cloud-specific SDK required
- Quick data access
- Clients without Delta Lake support
- Cross-cloud sharing scenarios
Access Mode Compatibility
TheaccessModes field in table metadata indicates which modes the server supports:
| Server Returns | URL-only Client | Dir-only Client | Both-supported Client |
|---|---|---|---|
| Omits accessModes | Uses URL access | Fails (server implies URL-only) | Uses URL access |
accessModes=["url"] | Uses URL access | Fails | Uses URL access |
accessModes=["dir"] | Fails | Uses dir access | Uses dir access |
accessModes=["url","dir"] | Uses URL access | Uses dir access | Either (client choice) |
Authentication
Delta Sharing uses bearer token authentication as defined in RFC 6750.Bearer Token Header
All REST API requests must include an Authorization header:Profile File
Recipients receive a profile file (JSON) containing connection details:shareCredentialsVersion: Profile file format version (currently 1)endpoint: Sharing server URLbearerToken: Token for authenticationexpirationTime: Optional token expiration in ISO 8601 format
Clients should check the expiration time and prompt users to refresh tokens when needed.
Delta Sharing Capabilities Header
Thedelta-sharing-capabilities header enables protocol evolution and feature negotiation between clients and servers.
Header Format
responseformat Capability
responseformat Capability
Specifies the expected format of API responses:
parquet: Default format, compatible with all Delta Sharing connectors (v1.0+)delta: Enables advanced features like deletion vectors and column mapping (v3.1+)
| Client Specifies | Server Recognizes | Result |
|---|---|---|
| No header | No | Parquet format |
| No header | Yes | Parquet format (must) |
| Header present | No | Parquet format (header ignored) |
responseformat=delta | Yes | Delta format if table has advanced features |
responseformat=delta,parquet | Yes | Server chooses based on table features |
readerfeatures Capability
readerfeatures Capability
Indicates client’s ability to process Delta reader features (only useful with Supported values correspond to Delta Protocol reader features.
responseformat=delta):includeEndStreamAction Capability
includeEndStreamAction Capability
Controls whether the server includes an EndStreamAction in responses:When set to
true and the server supports it:- Server must set
includeEndStreamAction=truein response header if including the action - Client must verify EndStreamAction exists at the end of the response
- EndStreamAction may contain
refreshToken,nextPageToken, orminUrlExpirationTimestamp
Sharing Server
A Sharing Server is any server that implements the Delta Sharing Protocol specification. The server:- Manages authentication and authorization
- Serves table metadata and data files
- Applies access controls based on shares
- Supports configurable URL prefixes
Servers hosted by different providers may use different URL prefixes. For example:
https://sharing.delta.io/delta-sharing/https://your-company.com/api/v1/delta-sharing/
Object Naming Constraints
To ensure compatibility across sharing servers, object names must follow these rules:Next Steps
REST APIs
Explore all available REST API endpoints
Response Format
Learn about API response structures
Filtering
Understand data filtering capabilities
Quickstart
Get started with Delta Sharing