DuckLake¶
Experimental
This functionality is experimental.
DuckLake is a modern LakeHouse which uses a relational database as its metadata backend.
Currently, there is only one production-ready implementation of DuckLake - via DuckDB, and the built-in DuckDBMetadataStore can be configured to use DuckLake as its storage backend. Learn more about the DuckDB integration here.
Configuration¶
There are two main parts that configure DuckLake: a metadata backend (where the transaction log and the catalog is stored) and a storage backend (where the data files (1) live).
- Parquet files
Each storage backend that manages secrets (PostgreSQL, S3, R2, GCS) requires a secret_name. Metaxy uses this name to either create a new DuckDB secret (when inline credentials are provided) or reference a pre-existing one (when only the name is given).
Tip
To use the credential chain (IAM roles, environment variables, etc.) instead of static credentials, set secret_parameters = { provider = "credential_chain" } on S3, R2, or GCS storage backends.
Example Configuration
[stores.dev]
type = "metaxy.ext.metadata_stores.duckdb.DuckDBMetadataStore"
[stores.dev.config.ducklake.metadata_backend]
type = "postgres"
secret_name = "my_pg_secret"
host = "localhost"
port = 5432
database = "ducklake_meta"
user = "ducklake"
password = "changeme"
[stores.dev.config.ducklake.storage_backend]
type = "s3"
secret_name = "my_s3_secret"
bucket = "my-ducklake-bucket"
key_id = "AKIA..."
secret = "..."
region = "eu-central-1"
See the DuckLake example to learn more.
MotherDuck Bring Your Own Bucket (BYOB)¶
MotherDuck can manage the DuckLake catalog while you provide your own S3-compatible storage. In this mode Metaxy creates the DuckLake database with a custom DATA_PATH and the storage secret is created IN MOTHERDUCK so that MotherDuck compute can access your bucket.
MotherDuck BYOB Configuration
[stores.dev.config.ducklake.metadata_backend]
type = "motherduck"
database = "my_ducklake"
region = "eu-central-1"
[stores.dev.config.ducklake.storage_backend]
type = "s3"
secret_name = "my_s3_secret"
key_id = "AKIA..."
secret = "..."
region = "eu-central-1"
scope = "s3://mybucket/"
bucket = "mybucket"
Without a storage_backend, MotherDuck uses its own fully managed storage and no additional configuration is needed.
DuckLake attachment configuration for a DuckDB connection.
Show JSON schema:
{
"$defs": {
"DuckDBMetadataBackendConfig": {
"description": "DuckDB file-based metadata backend for [DuckLake](https://ducklake.select/).",
"properties": {
"type": {
"const": "duckdb",
"default": "duckdb",
"title": "Type",
"type": "string"
},
"uri": {
"title": "Uri",
"type": "string"
}
},
"required": [
"uri"
],
"title": "DuckDBMetadataBackendConfig",
"type": "object"
},
"GCSStorageBackendConfig": {
"description": "Google Cloud Storage backend for [DuckLake](https://ducklake.select/).\n\nUses the DuckDB ``TYPE GCS`` secret with HMAC authentication.",
"properties": {
"type": {
"const": "gcs",
"default": "gcs",
"title": "Type",
"type": "string"
},
"key_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Key Id"
},
"secret": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Secret"
},
"data_path": {
"title": "Data Path",
"type": "string"
},
"secret_name": {
"title": "Secret Name",
"type": "string"
},
"secret_parameters": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Secret Parameters"
}
},
"required": [
"data_path",
"secret_name"
],
"title": "GCSStorageBackendConfig",
"type": "object"
},
"LocalStorageBackendConfig": {
"description": "Local filesystem storage backend for DuckLake.",
"properties": {
"type": {
"const": "local",
"default": "local",
"title": "Type",
"type": "string"
},
"path": {
"title": "Path",
"type": "string"
}
},
"required": [
"path"
],
"title": "LocalStorageBackendConfig",
"type": "object"
},
"MotherDuckMetadataBackendConfig": {
"description": "[MotherDuck](https://motherduck.com/)-managed metadata backend for [DuckLake](https://ducklake.select/).",
"properties": {
"type": {
"const": "motherduck",
"default": "motherduck",
"title": "Type",
"type": "string"
},
"database": {
"title": "Database",
"type": "string"
},
"region": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "AWS region of the MotherDuck-managed S3 storage (e.g. 'eu-central-1').",
"title": "Region"
}
},
"required": [
"database"
],
"title": "MotherDuckMetadataBackendConfig",
"type": "object"
},
"PostgresMetadataBackendConfig": {
"description": "PostgreSQL metadata backend for [DuckLake](https://ducklake.select/).",
"properties": {
"type": {
"const": "postgres",
"default": "postgres",
"title": "Type",
"type": "string"
},
"database": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Database"
},
"user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "User"
},
"password": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Password"
},
"host": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Host"
},
"port": {
"default": 5432,
"title": "Port",
"type": "integer"
},
"secret_name": {
"title": "Secret Name",
"type": "string"
},
"secret_parameters": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Secret Parameters"
}
},
"required": [
"secret_name"
],
"title": "PostgresMetadataBackendConfig",
"type": "object"
},
"R2StorageBackendConfig": {
"description": "Cloudflare R2 storage backend for [DuckLake](https://ducklake.select/).\n\nUses the DuckDB ``TYPE R2`` secret which requires an ``ACCOUNT_ID``.",
"properties": {
"type": {
"const": "r2",
"default": "r2",
"title": "Type",
"type": "string"
},
"key_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Key Id"
},
"secret": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Secret"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
},
"data_path": {
"title": "Data Path",
"type": "string"
},
"secret_name": {
"title": "Secret Name",
"type": "string"
},
"secret_parameters": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Secret Parameters"
}
},
"required": [
"data_path",
"secret_name"
],
"title": "R2StorageBackendConfig",
"type": "object"
},
"S3StorageBackendConfig": {
"description": "S3 storage backend for DuckLake.",
"properties": {
"type": {
"const": "s3",
"default": "s3",
"title": "Type",
"type": "string"
},
"key_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Key Id"
},
"secret": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Secret"
},
"endpoint": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Endpoint"
},
"bucket": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Bucket"
},
"prefix": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Prefix"
},
"region": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Region"
},
"url_style": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url Style"
},
"use_ssl": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Use Ssl"
},
"scope": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Scope"
},
"data_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Data Path"
},
"secret_name": {
"title": "Secret Name",
"type": "string"
},
"secret_parameters": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Secret Parameters"
}
},
"required": [
"secret_name"
],
"title": "S3StorageBackendConfig",
"type": "object"
},
"SQLiteMetadataBackendConfig": {
"description": "SQLite file-based metadata backend for [DuckLake](https://ducklake.select/).",
"properties": {
"type": {
"const": "sqlite",
"default": "sqlite",
"title": "Type",
"type": "string"
},
"uri": {
"title": "Uri",
"type": "string"
}
},
"required": [
"uri"
],
"title": "SQLiteMetadataBackendConfig",
"type": "object"
}
},
"description": "[DuckLake](https://ducklake.select/) attachment configuration for a DuckDB connection.",
"properties": {
"metadata_backend": {
"description": "Metadata catalog backend (DuckDB, SQLite, PostgreSQL, or MotherDuck).",
"discriminator": {
"mapping": {
"duckdb": "#/$defs/DuckDBMetadataBackendConfig",
"motherduck": "#/$defs/MotherDuckMetadataBackendConfig",
"postgres": "#/$defs/PostgresMetadataBackendConfig",
"sqlite": "#/$defs/SQLiteMetadataBackendConfig"
},
"propertyName": "type"
},
"oneOf": [
{
"$ref": "#/$defs/DuckDBMetadataBackendConfig"
},
{
"$ref": "#/$defs/SQLiteMetadataBackendConfig"
},
{
"$ref": "#/$defs/PostgresMetadataBackendConfig"
},
{
"$ref": "#/$defs/MotherDuckMetadataBackendConfig"
}
],
"title": "Metadata Backend"
},
"storage_backend": {
"anyOf": [
{
"discriminator": {
"mapping": {
"gcs": "#/$defs/GCSStorageBackendConfig",
"local": "#/$defs/LocalStorageBackendConfig",
"r2": "#/$defs/R2StorageBackendConfig",
"s3": "#/$defs/S3StorageBackendConfig"
},
"propertyName": "type"
},
"oneOf": [
{
"$ref": "#/$defs/LocalStorageBackendConfig"
},
{
"$ref": "#/$defs/S3StorageBackendConfig"
},
{
"$ref": "#/$defs/R2StorageBackendConfig"
},
{
"$ref": "#/$defs/GCSStorageBackendConfig"
}
]
},
{
"type": "null"
}
],
"default": null,
"description": "Data storage backend (local filesystem, S3, R2, or GCS). Not required for MotherDuck.",
"title": "Storage Backend"
},
"alias": {
"default": "ducklake",
"description": "DuckDB catalog alias for the attached DuckLake database.",
"title": "Alias",
"type": "string"
},
"attach_options": {
"additionalProperties": true,
"description": "Extra [DuckLake](https://ducklake.select/) ATTACH options (e.g., api_version, override_data_path).",
"title": "Attach Options",
"type": "object"
},
"data_inlining_row_limit": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Store inserts smaller than this row count directly in the metadata catalog instead of creating Parquet files.",
"title": "Data Inlining Row Limit"
}
},
"required": [
"metadata_backend"
],
"title": "DuckLakeAttachmentConfig",
"type": "object"
}
metaxy.ext.metadata_stores._ducklake_support.DuckLakeAttachmentConfig.metadata_backend
pydantic-field
¶
metadata_backend: (
DuckDBMetadataBackendConfig
| SQLiteMetadataBackendConfig
| PostgresMetadataBackendConfig
| MotherDuckMetadataBackendConfig
)
metaxy.ext.metadata_stores._ducklake_support.DuckLakeAttachmentConfig.storage_backend
pydantic-field
¶
storage_backend: (
LocalStorageBackendConfig
| S3StorageBackendConfig
| R2StorageBackendConfig
| GCSStorageBackendConfig
| None
) = None
Data storage backend (local filesystem, S3, R2, or GCS). Not required for MotherDuck.
metaxy.ext.metadata_stores._ducklake_support.DuckLakeAttachmentConfig.alias
pydantic-field
¶
alias: str = 'ducklake'
DuckDB catalog alias for the attached DuckLake database.
metaxy.ext.metadata_stores._ducklake_support.DuckLakeAttachmentConfig.attach_options
pydantic-field
¶
Extra DuckLake ATTACH options (e.g., api_version, override_data_path).
metaxy.ext.metadata_stores._ducklake_support.DuckLakeAttachmentConfig.data_inlining_row_limit
pydantic-field
¶
data_inlining_row_limit: int | None = None
Store inserts smaller than this row count directly in the metadata catalog instead of creating Parquet files.
Metadata Backends¶
DuckDB file-based metadata backend for DuckLake.
Show JSON schema:
{
"description": "DuckDB file-based metadata backend for [DuckLake](https://ducklake.select/).",
"properties": {
"type": {
"const": "duckdb",
"default": "duckdb",
"title": "Type",
"type": "string"
},
"uri": {
"title": "Uri",
"type": "string"
}
},
"required": [
"uri"
],
"title": "DuckDBMetadataBackendConfig",
"type": "object"
}
metaxy.ext.metadata_stores._ducklake_support.DuckDBMetadataBackendConfig.uri
pydantic-field
¶
uri: str
SQLite file-based metadata backend for DuckLake.
Show JSON schema:
{
"description": "SQLite file-based metadata backend for [DuckLake](https://ducklake.select/).",
"properties": {
"type": {
"const": "sqlite",
"default": "sqlite",
"title": "Type",
"type": "string"
},
"uri": {
"title": "Uri",
"type": "string"
}
},
"required": [
"uri"
],
"title": "SQLiteMetadataBackendConfig",
"type": "object"
}
metaxy.ext.metadata_stores._ducklake_support.SQLiteMetadataBackendConfig.uri
pydantic-field
¶
uri: str
PostgreSQL metadata backend for DuckLake.
Show JSON schema:
{
"description": "PostgreSQL metadata backend for [DuckLake](https://ducklake.select/).",
"properties": {
"type": {
"const": "postgres",
"default": "postgres",
"title": "Type",
"type": "string"
},
"database": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Database"
},
"user": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "User"
},
"password": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Password"
},
"host": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Host"
},
"port": {
"default": 5432,
"title": "Port",
"type": "integer"
},
"secret_name": {
"title": "Secret Name",
"type": "string"
},
"secret_parameters": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Secret Parameters"
}
},
"required": [
"secret_name"
],
"title": "PostgresMetadataBackendConfig",
"type": "object"
}
metaxy.ext.metadata_stores._ducklake_support.PostgresMetadataBackendConfig.database
pydantic-field
¶
database: str | None = None
metaxy.ext.metadata_stores._ducklake_support.PostgresMetadataBackendConfig.user
pydantic-field
¶
user: str | None = None
metaxy.ext.metadata_stores._ducklake_support.PostgresMetadataBackendConfig.password
pydantic-field
¶
password: str | None = None
metaxy.ext.metadata_stores._ducklake_support.PostgresMetadataBackendConfig.host
pydantic-field
¶
host: str | None = None
metaxy.ext.metadata_stores._ducklake_support.PostgresMetadataBackendConfig.port
pydantic-field
¶
port: int = 5432
metaxy.ext.metadata_stores._ducklake_support.PostgresMetadataBackendConfig.secret_name
pydantic-field
¶
secret_name: str
metaxy.ext.metadata_stores._ducklake_support.PostgresMetadataBackendConfig.secret_parameters
pydantic-field
¶
MotherDuck-managed metadata backend for DuckLake.
Show JSON schema:
{
"description": "[MotherDuck](https://motherduck.com/)-managed metadata backend for [DuckLake](https://ducklake.select/).",
"properties": {
"type": {
"const": "motherduck",
"default": "motherduck",
"title": "Type",
"type": "string"
},
"database": {
"title": "Database",
"type": "string"
},
"region": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "AWS region of the MotherDuck-managed S3 storage (e.g. 'eu-central-1').",
"title": "Region"
}
},
"required": [
"database"
],
"title": "MotherDuckMetadataBackendConfig",
"type": "object"
}
metaxy.ext.metadata_stores._ducklake_support.MotherDuckMetadataBackendConfig.database
pydantic-field
¶
database: str
metaxy.ext.metadata_stores._ducklake_support.MotherDuckMetadataBackendConfig.region
pydantic-field
¶
region: str | None = None
AWS region of the MotherDuck-managed S3 storage (e.g. 'eu-central-1').
Storage Backends¶
metaxy.ext.metadata_stores._ducklake_support.LocalStorageBackendConfig.path
pydantic-field
¶
path: str
S3 storage backend for DuckLake.
Show JSON schema:
{
"description": "S3 storage backend for DuckLake.",
"properties": {
"type": {
"const": "s3",
"default": "s3",
"title": "Type",
"type": "string"
},
"key_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Key Id"
},
"secret": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Secret"
},
"endpoint": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Endpoint"
},
"bucket": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Bucket"
},
"prefix": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Prefix"
},
"region": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Region"
},
"url_style": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url Style"
},
"use_ssl": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Use Ssl"
},
"scope": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Scope"
},
"data_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Data Path"
},
"secret_name": {
"title": "Secret Name",
"type": "string"
},
"secret_parameters": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Secret Parameters"
}
},
"required": [
"secret_name"
],
"title": "S3StorageBackendConfig",
"type": "object"
}
metaxy.ext.metadata_stores._ducklake_support.S3StorageBackendConfig.key_id
pydantic-field
¶
key_id: str | None = None
metaxy.ext.metadata_stores._ducklake_support.S3StorageBackendConfig.secret
pydantic-field
¶
secret: str | None = None
metaxy.ext.metadata_stores._ducklake_support.S3StorageBackendConfig.endpoint
pydantic-field
¶
endpoint: str | None = None
metaxy.ext.metadata_stores._ducklake_support.S3StorageBackendConfig.bucket
pydantic-field
¶
bucket: str | None = None
metaxy.ext.metadata_stores._ducklake_support.S3StorageBackendConfig.prefix
pydantic-field
¶
prefix: str | None = None
metaxy.ext.metadata_stores._ducklake_support.S3StorageBackendConfig.region
pydantic-field
¶
region: str | None = None
metaxy.ext.metadata_stores._ducklake_support.S3StorageBackendConfig.url_style
pydantic-field
¶
url_style: str | None = None
metaxy.ext.metadata_stores._ducklake_support.S3StorageBackendConfig.use_ssl
pydantic-field
¶
use_ssl: bool | None = None
metaxy.ext.metadata_stores._ducklake_support.S3StorageBackendConfig.scope
pydantic-field
¶
scope: str | None = None
metaxy.ext.metadata_stores._ducklake_support.S3StorageBackendConfig.data_path
pydantic-field
¶
data_path: str | None = None
metaxy.ext.metadata_stores._ducklake_support.S3StorageBackendConfig.secret_name
pydantic-field
¶
secret_name: str
metaxy.ext.metadata_stores._ducklake_support.S3StorageBackendConfig.secret_parameters
pydantic-field
¶
Cloudflare R2 storage backend for DuckLake.
Uses the DuckDB TYPE R2 secret which requires an ACCOUNT_ID.
Show JSON schema:
{
"description": "Cloudflare R2 storage backend for [DuckLake](https://ducklake.select/).\n\nUses the DuckDB ``TYPE R2`` secret which requires an ``ACCOUNT_ID``.",
"properties": {
"type": {
"const": "r2",
"default": "r2",
"title": "Type",
"type": "string"
},
"key_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Key Id"
},
"secret": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Secret"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
},
"data_path": {
"title": "Data Path",
"type": "string"
},
"secret_name": {
"title": "Secret Name",
"type": "string"
},
"secret_parameters": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Secret Parameters"
}
},
"required": [
"data_path",
"secret_name"
],
"title": "R2StorageBackendConfig",
"type": "object"
}
metaxy.ext.metadata_stores._ducklake_support.R2StorageBackendConfig.key_id
pydantic-field
¶
key_id: str | None = None
metaxy.ext.metadata_stores._ducklake_support.R2StorageBackendConfig.secret
pydantic-field
¶
secret: str | None = None
metaxy.ext.metadata_stores._ducklake_support.R2StorageBackendConfig.account_id
pydantic-field
¶
account_id: str | None = None
metaxy.ext.metadata_stores._ducklake_support.R2StorageBackendConfig.data_path
pydantic-field
¶
data_path: str
metaxy.ext.metadata_stores._ducklake_support.R2StorageBackendConfig.secret_name
pydantic-field
¶
secret_name: str
metaxy.ext.metadata_stores._ducklake_support.R2StorageBackendConfig.secret_parameters
pydantic-field
¶
Google Cloud Storage backend for DuckLake.
Uses the DuckDB TYPE GCS secret with HMAC authentication.
Show JSON schema:
{
"description": "Google Cloud Storage backend for [DuckLake](https://ducklake.select/).\n\nUses the DuckDB ``TYPE GCS`` secret with HMAC authentication.",
"properties": {
"type": {
"const": "gcs",
"default": "gcs",
"title": "Type",
"type": "string"
},
"key_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Key Id"
},
"secret": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Secret"
},
"data_path": {
"title": "Data Path",
"type": "string"
},
"secret_name": {
"title": "Secret Name",
"type": "string"
},
"secret_parameters": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Secret Parameters"
}
},
"required": [
"data_path",
"secret_name"
],
"title": "GCSStorageBackendConfig",
"type": "object"
}
metaxy.ext.metadata_stores._ducklake_support.GCSStorageBackendConfig.key_id
pydantic-field
¶
key_id: str | None = None
metaxy.ext.metadata_stores._ducklake_support.GCSStorageBackendConfig.secret
pydantic-field
¶
secret: str | None = None
metaxy.ext.metadata_stores._ducklake_support.GCSStorageBackendConfig.data_path
pydantic-field
¶
data_path: str
metaxy.ext.metadata_stores._ducklake_support.GCSStorageBackendConfig.secret_name
pydantic-field
¶
secret_name: str