From b596d11a046f9172a75448b8600240f04e190bc9 Mon Sep 17 00:00:00 2001 From: Diego Imbert Date: Tue, 8 Jul 2025 17:13:57 +0200 Subject: [PATCH] Reduce resource requests in assets page --- backend/windmill-api/openapi.yaml | 5 +++++ backend/windmill-api/src/assets.rs | 13 ++++++++++--- .../src/routes/(root)/(logged)/assets/+page.svelte | 2 +- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/backend/windmill-api/openapi.yaml b/backend/windmill-api/openapi.yaml index 7639a4fa5d..a834ec8dde 100644 --- a/backend/windmill-api/openapi.yaml +++ b/backend/windmill-api/openapi.yaml @@ -12983,6 +12983,11 @@ paths: $ref: "#/components/schemas/AssetUsageKind" access_type: $ref: "#/components/schemas/AssetUsageAccessType" + metadata: + type: object + properties: + resource_type: + type: string /w/{workspace}/assets/list_by_usages: post: diff --git a/backend/windmill-api/src/assets.rs b/backend/windmill-api/src/assets.rs index 6ea1756f46..0238834b43 100644 --- a/backend/windmill-api/src/assets.rs +++ b/backend/windmill-api/src/assets.rs @@ -22,15 +22,22 @@ async fn list_assets( ) -> JsonResult> { let assets = sqlx::query_scalar!( r#"SELECT - jsonb_build_object( + jsonb_strip_nulls(jsonb_build_object( 'path', path, 'kind', kind, 'usages', ARRAY_AGG(jsonb_build_object( 'path', usage_path, 'kind', usage_kind, 'access_type', usage_access_type - )) - ) as "list!: _" + )), + 'metadata', (CASE + WHEN kind = 'resource' THEN + (SELECT jsonb_build_object('resource_type', resource_type) FROM resource WHERE resource.path = asset.path AND resource.workspace_id = $1) + ELSE + NULL + END + ) + )) as "list!: _" FROM asset WHERE workspace_id = $1 GROUP BY path, kind diff --git a/frontend/src/routes/(root)/(logged)/assets/+page.svelte b/frontend/src/routes/(root)/(logged)/assets/+page.svelte index 0c7262df45..dc97ed66ae 100644 --- a/frontend/src/routes/(root)/(logged)/assets/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/assets/+page.svelte @@ -84,7 +84,7 @@ - {#if assetCanBeExplored(asset, { resource_type: resourceTypesCache[asset.path] })} + {#if assetCanBeExplored(asset, asset.metadata)}