diff --git a/client b/client index 88b2e7a4..606afc53 160000 --- a/client +++ b/client @@ -1 +1 @@ -Subproject commit 88b2e7a4aa53b70a0257135e9091406bf4efd3f6 +Subproject commit 606afc534132f92d23f6701f6e9c9d06461b1dce diff --git a/client-gui2 b/client-gui2 index b3a3bdf5..aa8381d7 160000 --- a/client-gui2 +++ b/client-gui2 @@ -1 +1 @@ -Subproject commit b3a3bdf59bd5dce22e108608da1d5539c261d4cd +Subproject commit aa8381d7ed57ddfedf628f607aa48d991c663957 diff --git a/common/build.rs b/common/build.rs index 48f9ef4c..be1b9b59 100644 --- a/common/build.rs +++ b/common/build.rs @@ -43,10 +43,6 @@ fn main() -> Result<(), Box> { .type_attribute(".komp_ac.tables_data.GetAdjacentTableDataResponse", serde) .type_attribute(".komp_ac.tables_data.ResolvedTableLinkStatus", serde) .type_attribute(".komp_ac.tables_data.RowNavigationMode", serde) - .field_attribute( - ".komp_ac.table_definition.TableDetail.catalog_features", - "#[serde(default)]", - ) .field_attribute( ".komp_ac.table_validation.FieldValidation.locked", "#[serde(default)]", @@ -57,7 +53,7 @@ fn main() -> Result<(), Box> { ) .field_attribute( ".komp_ac.table_definition.ColumnDefinition.boolean_ledger", - "#[serde(default, alias = \"boolean_ledger_operator\")]", + "#[serde(default)]", ) .type_attribute( ".komp_ac.table_validation.CountMode", diff --git a/common/proto/backup.proto b/common/proto/backup.proto index d5408441..66633fad 100644 --- a/common/proto/backup.proto +++ b/common/proto/backup.proto @@ -104,7 +104,6 @@ message BackupOperationResponse { } message BackupInfoResponse { - reserved 6, 22, 23, 24; bool success = 1; string output = 2; string server_version = 3; diff --git a/common/proto/table_definition.proto b/common/proto/table_definition.proto index 9a37e53e..68513738 100644 --- a/common/proto/table_definition.proto +++ b/common/proto/table_definition.proto @@ -172,14 +172,12 @@ enum ModuleDataAccessDecision { message ModuleDataAccessRequest { string requesting_module = 1; - reserved 2, 3; ModuleDataExport data_export = 5; bool granted = 4; } message ModuleDataAccessUpdate { string requesting_module = 1; - reserved 2; ModuleDataExportId export_id = 4; ModuleDataAccessDecision decision = 3; } @@ -387,8 +385,7 @@ message PutTableDefinitionRequest { // overwriting a newer structural or presentation change. int64 expected_row_version = 7; - // New physical/catalog name. Empty, or equal to table_name, keeps the - // current name for backwards-compatible callers. + // Required physical/catalog name. Use table_name to keep the current name. string new_table_name = 8; } @@ -704,9 +701,6 @@ message TableDetail { // User-managed single-column indexes. Backend-managed indexes are omitted. repeated string indexes = 13; - // True when module-owned storage supports catalog-managed rows and settings. - bool catalog_managed = 14; - // Supported catalog operations, not user permissions or a guarantee that a // particular request is valid. Column restrictions, locks, existing data and // optimistic concurrency checks still apply. Unknown values must be ignored. @@ -938,8 +932,6 @@ enum ColumnTypeSpelling { // The name is the whole spelling: "text", "money", "gtin_13". COLUMN_TYPE_SPELLING_BARE = 0; - reserved 1; - // The name takes the name of another table in the same profile: // "link(adresar)". The column holds that table's id, and the server creates // the foreign key and its index. A picker offers the profile's other tables diff --git a/common/proto/table_validation.proto b/common/proto/table_validation.proto index d449f1e0..f46f1f2d 100644 --- a/common/proto/table_validation.proto +++ b/common/proto/table_validation.proto @@ -192,7 +192,7 @@ message UpdateFieldValidationRequest { string dataKey = 3; FieldValidation validation = 4; - // Omitted keeps the legacy full-replacement behavior. Otherwise, only the + // Required. Only the // selected FieldValidation properties are changed; selecting an absent // message property deliberately removes it. google.protobuf.FieldMask update_mask = 5; diff --git a/common/proto/tables_data.proto b/common/proto/tables_data.proto index bd8c6613..90b48381 100644 --- a/common/proto/tables_data.proto +++ b/common/proto/tables_data.proto @@ -199,8 +199,7 @@ message StageTableDataImportRequest { string import_id = 1; string table_name = 2; repeated TableDataImportRow rows = 3; - // Import-contract revision returned by GetTableImportDescriptor. A zero - // value is accepted for older clients and snapshots the current revision. + // Required positive import-contract revision returned by GetTableImportDescriptor. int64 expected_table_revision = 4; } diff --git a/common/src/proto/descriptor.bin b/common/src/proto/descriptor.bin index 589dddf9..6df3fe9a 100644 Binary files a/common/src/proto/descriptor.bin and b/common/src/proto/descriptor.bin differ diff --git a/common/src/proto/komp_ac.table_definition.rs b/common/src/proto/komp_ac.table_definition.rs index 04528ac2..68076449 100644 --- a/common/src/proto/komp_ac.table_definition.rs +++ b/common/src/proto/komp_ac.table_definition.rs @@ -349,8 +349,7 @@ pub struct PutTableDefinitionRequest { /// overwriting a newer structural or presentation change. #[prost(int64, tag = "7")] pub expected_row_version: i64, - /// New physical/catalog name. Empty, or equal to table_name, keeps the - /// current name for backwards-compatible callers. + /// Required physical/catalog name. Use table_name to keep the current name. #[prost(string, tag = "8")] pub new_table_name: ::prost::alloc::string::String, } @@ -425,7 +424,7 @@ pub struct ColumnDefinition { /// Enables a Boolean ledger on Boolean columns. ANY means /// one true contribution wins; ALL means one false contribution wins. #[prost(enumeration = "BooleanLedgerOperator", tag = "7")] - #[serde(default, alias = "boolean_ledger_operator")] + #[serde(default)] pub boolean_ledger: i32, /// Defines this named column as a stored, read-only value copied through an /// existing LINK column. field_type and money metadata are inferred from the @@ -758,14 +757,10 @@ pub struct TableDetail { /// User-managed single-column indexes. Backend-managed indexes are omitted. #[prost(string, repeated, tag = "13")] pub indexes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, - /// True when module-owned storage supports catalog-managed rows and settings. - #[prost(bool, tag = "14")] - pub catalog_managed: bool, /// Supported catalog operations, not user permissions or a guarantee that a /// particular request is valid. Column restrictions, locks, existing data and /// optimistic concurrency checks still apply. Unknown values must be ignored. #[prost(enumeration = "CatalogFeature", repeated, tag = "15")] - #[serde(default)] pub catalog_features: ::prost::alloc::vec::Vec, } #[derive(serde::Serialize, serde::Deserialize)] diff --git a/common/src/proto/komp_ac.table_validation.rs b/common/src/proto/komp_ac.table_validation.rs index 5401c5a5..ef9eb999 100644 --- a/common/src/proto/komp_ac.table_validation.rs +++ b/common/src/proto/komp_ac.table_validation.rs @@ -159,7 +159,7 @@ pub struct UpdateFieldValidationRequest { pub data_key: ::prost::alloc::string::String, #[prost(message, optional, tag = "4")] pub validation: ::core::option::Option, - /// Omitted keeps the legacy full-replacement behavior. Otherwise, only the + /// Required. Only the /// selected FieldValidation properties are changed; selecting an absent /// message property deliberately removes it. #[prost(message, optional, tag = "5")] diff --git a/common/src/proto/komp_ac.tables_data.rs b/common/src/proto/komp_ac.tables_data.rs index 6a190133..58c17342 100644 --- a/common/src/proto/komp_ac.tables_data.rs +++ b/common/src/proto/komp_ac.tables_data.rs @@ -96,8 +96,7 @@ pub struct StageTableDataImportRequest { pub table_name: ::prost::alloc::string::String, #[prost(message, repeated, tag = "3")] pub rows: ::prost::alloc::vec::Vec, - /// Import-contract revision returned by GetTableImportDescriptor. A zero - /// value is accepted for older clients and snapshots the current revision. + /// Required positive import-contract revision returned by GetTableImportDescriptor. #[prost(int64, tag = "4")] pub expected_table_revision: i64, } diff --git a/komp-app/src/grpc.rs b/komp-app/src/grpc.rs index 05690c8d..9d21b26f 100644 --- a/komp-app/src/grpc.rs +++ b/komp-app/src/grpc.rs @@ -378,7 +378,7 @@ impl GrpcClient { table_name, data_key, validation: Some(validation), - update_mask: None, + update_mask: Some(prost_types::FieldMask { paths: ["limits", "pattern", "allowed_values", "external_validation_enabled", "mask", "required", "locked"].into_iter().map(String::from).collect() }), }; let request = self.authenticated_request(req)?; let resp = self diff --git a/server b/server index a4f361eb..3ed76c29 160000 --- a/server +++ b/server @@ -1 +1 @@ -Subproject commit a4f361ebad8a70de020e51b9741ae11f284b7b8b +Subproject commit 3ed76c2905dde17a398eba9fd4ac1d9e93a7f36b diff --git a/web/src/pages/add_validation/state.rs b/web/src/pages/add_validation/state.rs index d3c770a1..65e8cdfc 100644 --- a/web/src/pages/add_validation/state.rs +++ b/web/src/pages/add_validation/state.rs @@ -109,7 +109,7 @@ impl ValidationForm { table_name, data_key: data_key.clone(), validation: Some(self.validation(locale, data_key)?), - update_mask: None, + update_mask: Some(prost_types::FieldMask { paths: ["limits", "pattern", "allowed_values", "external_validation_enabled", "mask", "required", "locked"].into_iter().map(String::from).collect() }), }) } diff --git a/web/src/pages/admin/ecb/mod.rs b/web/src/pages/admin/ecb/mod.rs index b691d2bb..a56fd7d2 100644 --- a/web/src/pages/admin/ecb/mod.rs +++ b/web/src/pages/admin/ecb/mod.rs @@ -28,7 +28,6 @@ pub(crate) fn router() -> Router { "/admin/exchange-rates/evidence", post(workspace_logic::evidence), ) - .route("/admin/ecb", get(workspace_logic::legacy_ecb)) .route("/admin/ecb/provider", get(logic::page)) // The status card on its own, for the poll that keeps it live while a // batch is running. diff --git a/web/src/pages/admin/ecb/workspace_logic.rs b/web/src/pages/admin/ecb/workspace_logic.rs index 55d71ede..e6bcf50e 100644 --- a/web/src/pages/admin/ecb/workspace_logic.rs +++ b/web/src/pages/admin/ecb/workspace_logic.rs @@ -22,10 +22,6 @@ use super::{ workspace_ui, }; -pub(crate) async fn legacy_ecb() -> Redirect { - Redirect::permanent("/admin/exchange-rates#providers") -} - pub(crate) async fn page( State(state): State, headers: HeaderMap,