feat(sidebar): add configurable object metadata display
This commit is contained in:
29 files changed
+889
-143
No files matched your search
@@ -278,6 +278,7 @@ async fn main() {
|
||||
.route("/agents/progress/{operationId}", get(routes::agents::agent_progress))
|
||||
// Schema
|
||||
.route("/schema/databases", get(routes::schema::list_databases))
|
||||
.route("/schema/database-storage", post(routes::schema::list_database_storage))
|
||||
.route("/schema/doris/catalogs", get(routes::schema::list_doris_catalogs))
|
||||
.route("/schema/doris/catalog-databases", get(routes::schema::list_doris_catalog_databases))
|
||||
.route("/schema/sqlserver/linked-servers", get(routes::schema::list_sqlserver_linked_servers))
|
||||
|
||||
@@ -25,6 +25,12 @@ pub struct SchemaQuery {
|
||||
pub client_session_id: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub struct DatabaseStorageRequest {
|
||||
pub connection_id: String,
|
||||
pub databases: Vec<String>,
|
||||
}
|
||||
|
||||
pub async fn list_databases(
|
||||
State(state): State<Arc<WebState>>,
|
||||
Query(q): Query<SchemaQuery>,
|
||||
@@ -33,6 +39,16 @@ pub async fn list_databases(
|
||||
Ok(Json(serde_json::to_value(result).map_err(|e| AppError::from(e.to_string()))?))
|
||||
}
|
||||
|
||||
pub async fn list_database_storage(
|
||||
State(state): State<Arc<WebState>>,
|
||||
Json(request): Json<DatabaseStorageRequest>,
|
||||
) -> Result<Json<Vec<dbx_core::db::DatabaseStorageInfo>>, AppError> {
|
||||
let result = dbx_core::schema::list_database_storage_core(&state.app, &request.connection_id, &request.databases)
|
||||
.await
|
||||
.map_err(AppError::from)?;
|
||||
Ok(Json(result))
|
||||
}
|
||||
|
||||
/// Resolve a non-internal catalog for dispatch to the Doris multi-catalog path.
|
||||
async fn external_doris_catalog(state: &Arc<WebState>, connection_id: &str, catalog: Option<&str>) -> Option<String> {
|
||||
dbx_core::schema::resolve_external_doris_catalog(&state.app, connection_id, catalog).await
|
||||
|
||||
Reference in new issue
Block a user