mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-20 00:02:19 +00:00
aa30fd252d
* SQL Query builders in Rust * Remove frontend sql scripts and substitute at execution * fix null value bug * Handle WM_INTERNAL_DB marker for apps deployed prior * Revert policy handling * Fix database studio empty string as where clause * check policy * Revert "check policy" This reverts commit3ea7899979. * Revert "Fix database studio empty string as where clause" This reverts commit432fc87915. * Revert * legacy comments * Move DDL queries to backend * tests * move bigquery bun scripts to backend * expand markers + other nits * fix: escape sql literals in query builders and async preview sql Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: quote all user-supplied identifiers in query builders to prevent SQL injection Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: suppress dead_code warnings for deserialization-only fields and test-only helpers Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: correct DDL test assertions and drop_table schema handling for non-schema DBs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * MySQL fix * Fix 0/1 bool * MySQL fix Yes/No casing * Better error toasts * Fix ms sql ntext cast * fix: quote table name in Snowflake SHOW PRIMARY KEYS query Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: quote schema and table in Snowflake SHOW IMPORTED KEYS query Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: quote BigQuery dataset name in metadata query Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: remove invalid + separator in MSSQL CONCAT for count query Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
38 lines
1.0 KiB
Rust
38 lines
1.0 KiB
Rust
use crate::db::ApiAuthed;
|
|
use axum::{extract::Path, routing::post, Json, Router};
|
|
use serde::{Deserialize, Serialize};
|
|
use windmill_common::{
|
|
error::{Error, Result},
|
|
query_builders::try_expand_internal_db_query,
|
|
scripts::ScriptLang,
|
|
};
|
|
|
|
pub fn workspaced_service() -> Router {
|
|
Router::new().route("/expand_marker", post(expand_marker))
|
|
}
|
|
|
|
#[derive(Deserialize)]
|
|
struct ExpandMarkerRequest {
|
|
language: ScriptLang,
|
|
content: String,
|
|
}
|
|
|
|
#[derive(Serialize)]
|
|
struct ExpandMarkerResponse {
|
|
code: String,
|
|
}
|
|
|
|
async fn expand_marker(
|
|
_authed: ApiAuthed,
|
|
Path(_w_id): Path<String>,
|
|
Json(req): Json<ExpandMarkerRequest>,
|
|
) -> Result<Json<ExpandMarkerResponse>> {
|
|
match try_expand_internal_db_query(&req.content, &req.language) {
|
|
Some(Ok(expanded)) => Ok(Json(ExpandMarkerResponse { code: expanded.code })),
|
|
Some(Err(msg)) => Err(Error::BadRequest(msg)),
|
|
None => Err(Error::BadRequest(
|
|
"Content is not a WM_INTERNAL_DB marker".to_string(),
|
|
)),
|
|
}
|
|
}
|