feat: redesign the s3 explorer and show data files as tables (#11642)

* feat: restyle s3 explorer tree like the db manager tree

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat: make s3 explorer flush with its drawer

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat: show s3 file preview as an inset card

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat: redesign s3 explorer file header

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat: move s3 csv preview options into the file header band

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: narrow the s3 csv separator select

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat: show csv, parquet and json files as tables in the s3 explorer

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: keep the detected s3 csv separator shown in text view

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: drop stale s3 table responses and unfilterable nested columns

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* chore: pin ee ref for the s3 table decimal filter fix

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* chore: pin ee ref for the s3 table decimal scale fix

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* chore: pin ee ref for strict s3 table decimal filter parsing

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* chore: pin ee ref for the s3 decimal exponent bound

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* chore: update ee-repo-ref to 06610ecc950ed64a2709d7f1aa8c7b49a95fdbae

This commit updates the EE repository reference after PR #869 was merged in windmill-ee-private.

Previous ee-repo-ref: 74f041e9767f2ac612e21f351f96e71c584e2904

New ee-repo-ref: 06610ecc950ed64a2709d7f1aa8c7b49a95fdbae

Automated by sync-ee-ref workflow.

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
This commit is contained in:
Diego Imbert
2026-10-11 23:29:05 +02:00
committed by GitHub
co-authored by Claude Opus 5.5 windmill-internal-app[bot]
parent aae5f2efaa
commit 9fa9b77926
11 changed files with 726 additions and 245 deletions
+12 -3
View File
@@ -5848,6 +5848,10 @@ impl AppLoadCountQuery {
search_col: self.search_col,
search_term: self.search_term,
storage: self.storage,
s3_resource_path: None,
csv_separator: None,
csv_has_header: None,
filters: None,
},
)
}
@@ -5881,6 +5885,9 @@ impl AppLoadPreviewQuery {
search_term: self.search_term,
storage: self.storage,
csv_separator: self.csv_separator,
s3_resource_path: None,
csv_has_header: None,
filters: None,
},
)
}
@@ -5968,7 +5975,9 @@ async fn app_load_table_count(
let job_authed =
app_s3_on_behalf_and_provenance(&db, &path, &w_id, &opt_authed, &file_query).await?;
let resp =
crate::job_helpers_oss::load_table_count_internal(job_authed, &db, &w_id, file_key, inner)
crate::job_helpers_oss::load_table_count_internal(
job_authed, &db, None, &w_id, file_key, inner,
)
.await?;
Ok(Json(resp).into_response())
}
@@ -5987,7 +5996,7 @@ async fn app_load_parquet_preview(
let job_authed =
app_s3_on_behalf_and_provenance(&db, &path, &w_id, &opt_authed, &file_query).await?;
let resp = crate::job_helpers_oss::load_preview_internal(
job_authed, &db, &w_id, file_key, inner, true,
job_authed, &db, None, &w_id, file_key, inner, true,
)
.await?;
Ok(Json(resp).into_response())
@@ -6007,7 +6016,7 @@ async fn app_load_csv_preview(
let job_authed =
app_s3_on_behalf_and_provenance(&db, &path, &w_id, &opt_authed, &file_query).await?;
let resp = crate::job_helpers_oss::load_preview_internal(
job_authed, &db, &w_id, file_key, inner, false,
job_authed, &db, None, &w_id, file_key, inner, false,
)
.await?;
Ok(Json(resp).into_response())
@@ -263,6 +263,10 @@ mod app_s3_display_stubs {
pub search_col: Option<String>,
pub search_term: Option<String>,
pub storage: Option<String>,
pub s3_resource_path: Option<String>,
pub csv_separator: Option<String>,
pub csv_has_header: Option<bool>,
pub filters: Option<String>,
}
#[derive(Serialize)]
@@ -278,7 +282,10 @@ mod app_s3_display_stubs {
pub search_col: Option<String>,
pub search_term: Option<String>,
pub storage: Option<String>,
pub s3_resource_path: Option<String>,
pub csv_separator: Option<String>,
pub csv_has_header: Option<bool>,
pub filters: Option<String>,
}
pub async fn load_file_metadata_internal(
@@ -308,6 +315,7 @@ mod app_s3_display_stubs {
pub async fn load_table_count_internal(
_authed: OptJobAuthed,
_db: &DB,
_user_db: Option<UserDB>,
_w_id: &str,
_file_key: String,
_query: LoadCountQuery,
@@ -320,6 +328,7 @@ mod app_s3_display_stubs {
pub async fn load_preview_internal(
_authed: OptJobAuthed,
_db: &DB,
_user_db: Option<UserDB>,
_w_id: &str,
_file_key: String,
_query: LoadPreviewQuery,