Skip to content

Commit 4a8ce47

Browse files
docs: remove stale datasets references, refresh MCP + CLI reference
1 parent 13b2cb8 commit 4a8ce47

133 files changed

Lines changed: 293 additions & 135 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Changed
11+
12+
- docs: remove stale datasets references, refresh MCP + CLI reference
1013

1114
## [0.4.0] - 2026-06-19
1215

docs/ConnectionsApi.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ This endpoint does not need any parameter.
298298
> models::LoadManagedTableResponse load_managed_table(connection_id, schema, table, load_managed_table_request)
299299
Load managed table from upload
300300

301-
Publish a previously-uploaded parquet file as the new contents of a managed table. The upload must reference a parquet file. Only `mode = \"replace\"` is supported. Concurrent loads against the same upload return 409.
301+
Publish a previously-uploaded file as the new contents of a managed table. CSV, JSON, and Parquet uploads are supported; the format is auto-detected from the upload's `Content-Type` and file contents, or set explicitly via the `format` field. Only `mode = \"replace\"` is supported. Concurrent loads against the same upload return 409.
302302

303303
### Parameters
304304

docs/DatabasesApi.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Method | HTTP request | Description
1212
[**detach_database_catalog**](DatabasesApi.md#detach_database_catalog) | **DELETE** /v1/databases/{database_id}/catalogs/{connection_id} | Detach catalog from database
1313
[**get_database**](DatabasesApi.md#get_database) | **GET** /v1/databases/{database_id} | Get database
1414
[**list_databases**](DatabasesApi.md#list_databases) | **GET** /v1/databases | List databases
15+
[**load_database_table**](DatabasesApi.md#load_database_table) | **POST** /v1/databases/{database_id}/schemas/{schema}/tables/{table}/loads | Load database table from upload
1516

1617

1718

@@ -252,3 +253,36 @@ This endpoint does not need any parameter.
252253

253254
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
254255

256+
257+
## load_database_table
258+
259+
> models::LoadManagedTableResponse load_database_table(database_id, schema, table, load_managed_table_request)
260+
Load database table from upload
261+
262+
Publish a previously-uploaded file as the new contents of a table on the database's default catalog. The database-scoped equivalent of the connection-scoped managed-table load — addressed by `database_id`, so no `default_connection_id` is needed. CSV, JSON, and Parquet uploads are supported; the format is auto-detected or set via `format`. Only `mode = \"replace\"` is supported. Concurrent loads against the same upload return 409.
263+
264+
### Parameters
265+
266+
267+
Name | Type | Description | Required | Notes
268+
------------- | ------------- | ------------- | ------------- | -------------
269+
**database_id** | **String** | Database ID | [required] |
270+
**schema** | **String** | Schema name | [required] |
271+
**table** | **String** | Table name | [required] |
272+
**load_managed_table_request** | [**LoadManagedTableRequest**](LoadManagedTableRequest.md) | | [required] |
273+
274+
### Return type
275+
276+
[**models::LoadManagedTableResponse**](LoadManagedTableResponse.md)
277+
278+
### Authorization
279+
280+
[WorkspaceId](../README.md#WorkspaceId), [BearerAuth](../README.md#BearerAuth)
281+
282+
### HTTP request headers
283+
284+
- **Content-Type**: application/json
285+
- **Accept**: application/json
286+
287+
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
288+

docs/JobType.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99
| DataRefreshConnection | data_refresh_connection |
1010
| CreateIndex | create_index |
1111
| ManagedLoad | managed_load |
12+
| DucklakeVacuum | ducklake_vacuum |
13+
| DucklakeOrphanCleanup | ducklake_orphan_cleanup |
14+
| ResultDeletion | result_deletion |
15+
| StaleResultCleanup | stale_result_cleanup |
16+
| ResultRetention | result_retention |
1217

1318

1419
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

docs/LoadManagedTableRequest.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44

55
Name | Type | Description | Notes
66
------------ | ------------- | ------------- | -------------
7+
**format** | Option<**String**> | File format of the upload: `\"csv\"`, `\"json\"`, or `\"parquet\"`. Optional — when omitted, the format is auto-detected from the upload's `Content-Type` and, failing that, from the file contents. Provide it explicitly to override detection or when the contents are ambiguous. `\"json\"` expects newline-delimited JSON (one object per line), not a JSON array. | [optional]
78
**mode** | **String** | Load mode. Only `\"replace\"` is supported in this release. |
8-
**upload_id** | **String** | ID of a previously-staged upload (see `POST /v1/files`). The upload must reference a parquet file. The upload is claimed atomically; concurrent loads against the same `upload_id` return 409. |
9+
**upload_id** | **String** | ID of a previously-staged upload (see `POST /v1/files`). The upload is claimed atomically; concurrent loads against the same `upload_id` return 409. |
910

1011
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
1112

src/apis/configuration.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* Hotdata API
33
*
4-
* Powerful data platform API for datasets, queries, and analytics.
4+
* Powerful data platform API for managed databases, queries, and analytics.
55
*
66
* The version of the OpenAPI document: 1.0.0
77
* Contact: developers@hotdata.dev

src/apis/connection_types_api.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* Hotdata API
33
*
4-
* Powerful data platform API for datasets, queries, and analytics.
4+
* Powerful data platform API for managed databases, queries, and analytics.
55
*
66
* The version of the OpenAPI document: 1.0.0
77
* Contact: developers@hotdata.dev

src/apis/connections_api.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* Hotdata API
33
*
4-
* Powerful data platform API for datasets, queries, and analytics.
4+
* Powerful data platform API for managed databases, queries, and analytics.
55
*
66
* The version of the OpenAPI document: 1.0.0
77
* Contact: developers@hotdata.dev
@@ -718,7 +718,7 @@ pub async fn list_connections(
718718
}
719719
}
720720

721-
/// Publish a previously-uploaded parquet file as the new contents of a managed table. The upload must reference a parquet file. Only `mode = \"replace\"` is supported. Concurrent loads against the same upload return 409.
721+
/// Publish a previously-uploaded file as the new contents of a managed table. CSV, JSON, and Parquet uploads are supported; the format is auto-detected from the upload's `Content-Type` and file contents, or set explicitly via the `format` field. Only `mode = \"replace\"` is supported. Concurrent loads against the same upload return 409.
722722
pub async fn load_managed_table(
723723
configuration: &configuration::Configuration,
724724
connection_id: &str,

src/apis/database_context_api.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* Hotdata API
33
*
4-
* Powerful data platform API for datasets, queries, and analytics.
4+
* Powerful data platform API for managed databases, queries, and analytics.
55
*
66
* The version of the OpenAPI document: 1.0.0
77
* Contact: developers@hotdata.dev

src/apis/databases_api.rs

Lines changed: 89 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* Hotdata API
33
*
4-
* Powerful data platform API for datasets, queries, and analytics.
4+
* Powerful data platform API for managed databases, queries, and analytics.
55
*
66
* The version of the OpenAPI document: 1.0.0
77
* Contact: developers@hotdata.dev
@@ -84,6 +84,16 @@ pub enum ListDatabasesError {
8484
UnknownValue(serde_json::Value),
8585
}
8686

87+
/// struct for typed errors of method [`load_database_table`]
88+
#[derive(Debug, Clone, Serialize, Deserialize)]
89+
#[serde(untagged)]
90+
pub enum LoadDatabaseTableError {
91+
Status400(models::ApiErrorResponse),
92+
Status404(models::ApiErrorResponse),
93+
Status409(models::ApiErrorResponse),
94+
UnknownValue(serde_json::Value),
95+
}
96+
8797
/// Declare a new schema (and optionally its tables) on the database's auto-created default catalog after creation. The schema becomes reachable inside the database scope (e.g. `default.<schema>.<table>` and `information_schema.schemata`) without the caller addressing the internal default connection directly. Identifiers are normalized to lowercase.
8898
pub async fn add_database_schema(
8999
configuration: &configuration::Configuration,
@@ -597,3 +607,81 @@ pub async fn list_databases(
597607
}))
598608
}
599609
}
610+
611+
/// Publish a previously-uploaded file as the new contents of a table on the database's default catalog. The database-scoped equivalent of the connection-scoped managed-table load — addressed by `database_id`, so no `default_connection_id` is needed. CSV, JSON, and Parquet uploads are supported; the format is auto-detected or set via `format`. Only `mode = \"replace\"` is supported. Concurrent loads against the same upload return 409.
612+
pub async fn load_database_table(
613+
configuration: &configuration::Configuration,
614+
database_id: &str,
615+
schema: &str,
616+
table: &str,
617+
load_managed_table_request: models::LoadManagedTableRequest,
618+
) -> Result<models::LoadManagedTableResponse, Error<LoadDatabaseTableError>> {
619+
// add a prefix to parameters to efficiently prevent name collisions
620+
let p_path_database_id = database_id;
621+
let p_path_schema = schema;
622+
let p_path_table = table;
623+
let p_body_load_managed_table_request = load_managed_table_request;
624+
625+
let uri_str = format!(
626+
"{}/v1/databases/{database_id}/schemas/{schema}/tables/{table}/loads",
627+
configuration.base_path,
628+
database_id = crate::apis::urlencode(p_path_database_id),
629+
schema = crate::apis::urlencode(p_path_schema),
630+
table = crate::apis::urlencode(p_path_table)
631+
);
632+
let mut req_builder = configuration
633+
.client
634+
.request(reqwest::Method::POST, &uri_str);
635+
636+
if let Some(ref user_agent) = configuration.user_agent {
637+
req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
638+
}
639+
if let Some(apikey) = configuration.api_keys.get("X-Workspace-Id") {
640+
let key = apikey.key.clone();
641+
let value = match apikey.prefix {
642+
Some(ref prefix) => format!("{} {}", prefix, key),
643+
None => key,
644+
};
645+
req_builder = req_builder.header("X-Workspace-Id", value);
646+
};
647+
if let Some(token) = configuration.resolve_bearer_token().await {
648+
req_builder = req_builder.bearer_auth(token);
649+
};
650+
req_builder = req_builder.json(&p_body_load_managed_table_request);
651+
652+
let req = req_builder.build()?;
653+
crate::http_log::log_request(&req);
654+
// Route through the shared retry helper so HTTP 429 (OVERLOADED admission
655+
// shedding) is retried per `configuration.retry` on every generated op, not
656+
// just the hand-written query path. See crate::http::execute_retrying.
657+
let resp =
658+
crate::http::execute_retrying(&configuration.client, req, &configuration.retry).await?;
659+
660+
let status = resp.status();
661+
crate::http_log::log_response_status(status);
662+
let content_type = resp
663+
.headers()
664+
.get("content-type")
665+
.and_then(|v| v.to_str().ok())
666+
.unwrap_or("application/octet-stream");
667+
let content_type = super::ContentType::from(content_type);
668+
669+
if !status.is_client_error() && !status.is_server_error() {
670+
let content = resp.text().await?;
671+
crate::http_log::log_response_body(&content);
672+
match content_type {
673+
ContentType::Json => serde_json::from_str(&content).map_err(Error::from),
674+
ContentType::Text => return Err(Error::from(serde_json::Error::custom("Received `text/plain` content type response that cannot be converted to `models::LoadManagedTableResponse`"))),
675+
ContentType::Unsupported(unknown_type) => return Err(Error::from(serde_json::Error::custom(format!("Received `{unknown_type}` content type response that cannot be converted to `models::LoadManagedTableResponse`")))),
676+
}
677+
} else {
678+
let content = resp.text().await?;
679+
crate::http_log::log_response_body(&content);
680+
let entity: Option<LoadDatabaseTableError> = serde_json::from_str(&content).ok();
681+
Err(Error::ResponseError(ResponseContent {
682+
status,
683+
content,
684+
entity,
685+
}))
686+
}
687+
}

0 commit comments

Comments
 (0)