Register an S3-compatible storage connection
Connects an S3 or S3-compatible bucket (e.g. MinIO, R2) and optionally discovers Delta and Iceberg tables within it. Credentials are encrypted and stored in the vault. Pass `workspaceId` to attach the config to a workspace instead of the caller — all workspace members then see its tables (default workspace = whole org). **Required scope:** `storage:configure` (+ `storage_configs:share` with `workspaceId`)
Authorization
BearerAuth Security scheme for OpenAPI endpoints. Validates both JWT tokens and API keys.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/storages/s3" \ -H "Content-Type: application/json" \ -d '{ "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "secretKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "sessionToken": null, "region": "us-east-1", "bucketName": "my-data-lake", "endpoint": null, "basePath": "delta-tables/", "schemaName": null, "discoverDelta": true, "discoverIceberg": false, "discoverFiles": null, "workspaceId": null }'{ "deltaTablesCount": 0, "icebergTablesCount": 0, "totalTables": 0, "message": "string", "discoveryTimeMs": 0}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}Seed a demo table into a storage configuration
Creates a pre-configured `demo_products` table (with fixed + hierarchical domain constraints) in the given storage config so users have something to explore. **Required scope:** `storage:write`
Register an Azure Blob or ADLS Gen2 storage connection
Connects an Azure Storage account container (Blob or ADLS Gen2 / OneLake) and optionally discovers Delta and Iceberg tables. Supports access key, SAS token, bearer token, and Microsoft Fabric endpoint authentication. Pass `workspaceId` to attach the config to a workspace instead of the caller — all workspace members then see its tables (default workspace = whole org). A delegated (linked-identity) config shared this way resolves each member's own Azure identity at query time. **Required scope:** `storage:configure` (+ `storage_configs:share` with `workspaceId`)