From 76f475064e982e95614e8998b0a192a99840be6c Mon Sep 17 00:00:00 2001 From: Priec Date: Mon, 17 Aug 2026 17:07:00 +0200 Subject: [PATCH] restore empty global catalog handling --- client | 2 +- common/proto/table_definition.proto | 6 ++---- common/src/proto/descriptor.bin | Bin 185848 -> 185765 bytes common/src/proto/komp_ac.table_definition.rs | 8 +++----- server | 2 +- web/CHANGELOG.md | 8 +++----- web/src/pages/add_table/loader.rs | 2 +- web/src/pages/admin/admin/loader.rs | 2 +- .../pages/admin/table_definition/loader.rs | 2 +- web/src/pages/import_export/common/loader.rs | 2 +- 10 files changed, 14 insertions(+), 20 deletions(-) diff --git a/client b/client index 20316569..1821d1fd 160000 --- a/client +++ b/client @@ -1 +1 @@ -Subproject commit 20316569327165c51760005e063513ba414458b3 +Subproject commit 1821d1fdd5e305c51a76a6cda51a49915ed6ab70 diff --git a/common/proto/table_definition.proto b/common/proto/table_definition.proto index 717cdcb6..a788705d 100644 --- a/common/proto/table_definition.proto +++ b/common/proto/table_definition.proto @@ -316,10 +316,8 @@ message ProfileTreeResponse { } message GetTableCatalogRequest { - // Profile whose tables to list, together with the shared tables every - // profile sees. The profile holding the shared tables is named like any - // other, and asking for it lists exactly those. - string profile_name = 1; + // Selected profile. Omit this field to request the global-only scope. + optional string profile_name = 1; } message GetTableCatalogResponse { diff --git a/common/src/proto/descriptor.bin b/common/src/proto/descriptor.bin index 96660fe24b585af8b7269a7e8467b3329d55542f..fe53a90388db6914f25e177fe9c0d615093b564b 100644 GIT binary patch delta 5085 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 diff --git a/common/src/proto/komp_ac.table_definition.rs b/common/src/proto/komp_ac.table_definition.rs index da0117ad..98f0c56e 100644 --- a/common/src/proto/komp_ac.table_definition.rs +++ b/common/src/proto/komp_ac.table_definition.rs @@ -288,11 +288,9 @@ pub mod profile_tree_response { } #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] pub struct GetTableCatalogRequest { - /// Profile whose tables to list, together with the shared tables every - /// profile sees. The profile holding the shared tables is named like any - /// other, and asking for it lists exactly those. - #[prost(string, tag = "1")] - pub profile_name: ::prost::alloc::string::String, + /// Selected profile. Omit this field to request the global-only scope. + #[prost(string, optional, tag = "1")] + pub profile_name: ::core::option::Option<::prost::alloc::string::String>, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct GetTableCatalogResponse { diff --git a/server b/server index 645b45e8..1a7b8946 160000 --- a/server +++ b/server @@ -1 +1 @@ -Subproject commit 645b45e81ba80067ff2aa1d98a2c8ef9cd603b07 +Subproject commit 1a7b8946a2e7fbb3ec57718ee56c17800470129a diff --git a/web/CHANGELOG.md b/web/CHANGELOG.md index f1ec3110..b702e9fa 100644 --- a/web/CHANGELOG.md +++ b/web/CHANGELOG.md @@ -18,11 +18,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - **The shared profile is named by the backend** — `ProfileTreeResponse` gained `shared_profile_name`, and every page that browses the shared tables - now reads the name from there instead of spelling `__global` itself. The - admin panel, the table-definition workspace, the add-table builder and the - transfer pages each pass that name as `GetTableCatalogRequest.profile_name`, - which is no longer optional: the shared profile is asked for by name like - any other. + now reads the name from there instead of spelling `__global` itself. Catalog + discovery retains its global-only request, which does not require the shared + profile to have been created yet. --- diff --git a/web/src/pages/add_table/loader.rs b/web/src/pages/add_table/loader.rs index 6d157d93..f8d3886c 100644 --- a/web/src/pages/add_table/loader.rs +++ b/web/src/pages/add_table/loader.rs @@ -76,7 +76,7 @@ pub(crate) async fn load_page( let catalog_tables = definitions .get_table_catalog( authenticated_request(headers, GetTableCatalogRequest { - profile_name: shared_profile.clone(), + profile_name: None, }) .map_err(|_| LoadError::Unauthenticated)?, ) diff --git a/web/src/pages/admin/admin/loader.rs b/web/src/pages/admin/admin/loader.rs index 724e4e13..c6eae4f1 100644 --- a/web/src/pages/admin/admin/loader.rs +++ b/web/src/pages/admin/admin/loader.rs @@ -54,7 +54,7 @@ pub(crate) async fn load_admin_page( &definitions .get_table_catalog( authenticated_request(headers, GetTableCatalogRequest { - profile_name: shared_profile.clone(), + profile_name: None, }) .map_err(authentication_error)?, ) diff --git a/web/src/pages/admin/table_definition/loader.rs b/web/src/pages/admin/table_definition/loader.rs index d700cc5a..1eac25c0 100644 --- a/web/src/pages/admin/table_definition/loader.rs +++ b/web/src/pages/admin/table_definition/loader.rs @@ -125,7 +125,7 @@ pub(crate) async fn load_page( let catalog_tables = definitions .get_table_catalog( authenticated_request(headers, GetTableCatalogRequest { - profile_name: shared_profile.clone(), + profile_name: None, }) .map_err(|_| LoadError::Unauthenticated)?, ) diff --git a/web/src/pages/import_export/common/loader.rs b/web/src/pages/import_export/common/loader.rs index 715b3b9f..6eabb8f1 100644 --- a/web/src/pages/import_export/common/loader.rs +++ b/web/src/pages/import_export/common/loader.rs @@ -83,7 +83,7 @@ pub(crate) async fn load_catalog( &definitions .get_table_catalog( authenticated_request(headers, GetTableCatalogRequest { - profile_name: shared_profile.clone(), + profile_name: None, }) .map_err(|_| LoadError::Unauthenticated)?, )