diff --git a/Cargo.lock b/Cargo.lock index a46b7ec..c8895bd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1959,11 +1959,11 @@ checksum = "08ab2867e3eeeca90e844d1940eab391c9dc5228783db2ed999acbc0a9ed375a" [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", ] [[package]] @@ -2080,12 +2080,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.46.0" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "overload", - "winapi", + "windows-sys 0.60.2", ] [[package]] @@ -2243,12 +2242,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "ownedbytes" version = "0.9.0" @@ -2810,17 +2803,8 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", + "regex-automata", + "regex-syntax", ] [[package]] @@ -2831,15 +2815,9 @@ checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax", ] -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - [[package]] name = "regex-syntax" version = "0.8.5" @@ -3210,6 +3188,7 @@ dependencies = [ "futures", "jsonwebtoken", "lazy_static", + "once_cell", "prost 0.13.5", "prost-build 0.14.1", "prost-types 0.13.5", @@ -3234,6 +3213,7 @@ dependencies = [ "tonic", "tonic-reflection", "tracing", + "tracing-subscriber", "uuid", "validator", ] @@ -3830,7 +3810,7 @@ dependencies = [ "fnv", "once_cell", "plist", - "regex-syntax 0.8.5", + "regex-syntax", "serde", "serde_derive", "serde_json", @@ -3936,7 +3916,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d60769b80ad7953d8a7b2c70cdfe722bbcdcac6bccc8ac934c40c034d866fc18" dependencies = [ "byteorder", - "regex-syntax 0.8.5", + "regex-syntax", "utf8-ranges", ] @@ -4318,9 +4298,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "log", "pin-project-lite", @@ -4330,9 +4310,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", @@ -4341,9 +4321,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", "valuable", @@ -4362,14 +4342,14 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "regex", + "regex-automata", "sharded-slab", "smallvec", "thread_local", diff --git a/common/proto/adresar.proto b/common/proto/adresar.proto index 41e0ea2..00094be 100644 --- a/common/proto/adresar.proto +++ b/common/proto/adresar.proto @@ -6,78 +6,78 @@ import "common.proto"; // import "table_structure.proto"; service Adresar { - rpc PostAdresar (PostAdresarRequest) returns (AdresarResponse); - rpc GetAdresar (GetAdresarRequest) returns (AdresarResponse); - rpc PutAdresar (PutAdresarRequest) returns (AdresarResponse); - rpc DeleteAdresar (DeleteAdresarRequest) returns (DeleteAdresarResponse); - rpc GetAdresarCount (common.Empty) returns (common.CountResponse); - rpc GetAdresarByPosition (common.PositionRequest) returns (AdresarResponse); + rpc PostAdresar(PostAdresarRequest) returns (AdresarResponse); + rpc GetAdresar(GetAdresarRequest) returns (AdresarResponse); + rpc PutAdresar(PutAdresarRequest) returns (AdresarResponse); + rpc DeleteAdresar(DeleteAdresarRequest) returns (DeleteAdresarResponse); + rpc GetAdresarCount(common.Empty) returns (common.CountResponse); + rpc GetAdresarByPosition(common.PositionRequest) returns (AdresarResponse); } message GetAdresarRequest { - int64 id = 1; + int64 id = 1; } message DeleteAdresarRequest { - int64 id = 1; + int64 id = 1; } message PostAdresarRequest { - string firma = 1; - string kz = 2; - string drc = 3; - string ulica = 4; - string psc = 5; - string mesto = 6; - string stat = 7; - string banka = 8; - string ucet = 9; - string skladm = 10; - string ico = 11; - string kontakt = 12; - string telefon = 13; - string skladu = 14; - string fax = 15; + string firma = 1; + string kz = 2; + string drc = 3; + string ulica = 4; + string psc = 5; + string mesto = 6; + string stat = 7; + string banka = 8; + string ucet = 9; + string skladm = 10; + string ico = 11; + string kontakt = 12; + string telefon = 13; + string skladu = 14; + string fax = 15; } message AdresarResponse { - int64 id = 1; - string firma = 2; - string kz = 3; - string drc = 4; - string ulica = 5; - string psc = 6; - string mesto = 7; - string stat = 8; - string banka = 9; - string ucet = 10; - string skladm = 11; - string ico = 12; - string kontakt = 13; - string telefon = 14; - string skladu = 15; - string fax = 16; + int64 id = 1; + string firma = 2; + string kz = 3; + string drc = 4; + string ulica = 5; + string psc = 6; + string mesto = 7; + string stat = 8; + string banka = 9; + string ucet = 10; + string skladm = 11; + string ico = 12; + string kontakt = 13; + string telefon = 14; + string skladu = 15; + string fax = 16; } message PutAdresarRequest { - int64 id = 1; - string firma = 2; - string kz = 3; - string drc = 4; - string ulica = 5; - string psc = 6; - string mesto = 7; - string stat = 8; - string banka = 9; - string ucet = 10; - string skladm = 11; - string ico = 12; - string kontakt = 13; - string telefon = 14; - string skladu = 15; - string fax = 16; + int64 id = 1; + string firma = 2; + string kz = 3; + string drc = 4; + string ulica = 5; + string psc = 6; + string mesto = 7; + string stat = 8; + string banka = 9; + string ucet = 10; + string skladm = 11; + string ico = 12; + string kontakt = 13; + string telefon = 14; + string skladu = 15; + string fax = 16; } message DeleteAdresarResponse { - bool success = 1; + bool success = 1; } diff --git a/common/proto/auth.proto b/common/proto/auth.proto index 5a1a442..759bb29 100644 --- a/common/proto/auth.proto +++ b/common/proto/auth.proto @@ -5,35 +5,35 @@ package komp_ac.auth; import "common.proto"; service AuthService { - rpc Register(RegisterRequest) returns (AuthResponse); - rpc Login(LoginRequest) returns (LoginResponse); + rpc Register(RegisterRequest) returns (AuthResponse); + rpc Login(LoginRequest) returns (LoginResponse); } message RegisterRequest { - string username = 1; - string email = 2; - string password = 3; - string password_confirmation = 4; - string role = 5; + string username = 1; + string email = 2; + string password = 3; + string password_confirmation = 4; + string role = 5; } message AuthResponse { - string id = 1; // UUID in string format - string username = 2; // Registered username - string email = 3; // Registered email (if provided) - string role = 4; // Default role: 'accountant' + string id = 1; // UUID in string format + string username = 2; // Registered username + string email = 3; // Registered email (if provided) + string role = 4; // Default role: 'accountant' } message LoginRequest { - string identifier = 1; // Can be username or email - string password = 2; + string identifier = 1; // Can be username or email + string password = 2; } message LoginResponse { - string access_token = 1; // JWT token - string token_type = 2; // Usually "Bearer" - int32 expires_in = 3; // Expiration in seconds (86400 for 24 hours) - string user_id = 4; // User's UUID in string format - string role = 5; // User's role - string username = 6; + string access_token = 1; // JWT token + string token_type = 2; // Usually "Bearer" + int32 expires_in = 3; // Expiration in seconds (86400 for 24 hours) + string user_id = 4; // User's UUID in string format + string role = 5; // User's role + string username = 6; } diff --git a/common/proto/common.proto b/common/proto/common.proto index 7ae4ba0..073e01c 100644 --- a/common/proto/common.proto +++ b/common/proto/common.proto @@ -3,5 +3,9 @@ syntax = "proto3"; package komp_ac.common; message Empty {} -message CountResponse { int64 count = 1; } -message PositionRequest { int64 position = 1; } +message CountResponse { + int64 count = 1; +} +message PositionRequest { + int64 position = 1; +} diff --git a/common/proto/search.proto b/common/proto/search.proto index 8610a6b..8f91477 100644 --- a/common/proto/search.proto +++ b/common/proto/search.proto @@ -3,18 +3,18 @@ syntax = "proto3"; package komp_ac.search; service Searcher { - rpc SearchTable(SearchRequest) returns (SearchResponse); + rpc SearchTable(SearchRequest) returns (SearchResponse); } message SearchRequest { - string table_name = 1; - string query = 2; + string table_name = 1; + string query = 2; } message SearchResponse { - message Hit { - int64 id = 1; // PostgreSQL row ID - float score = 2; - string content_json = 3; - } - repeated Hit hits = 1; + message Hit { + int64 id = 1; // PostgreSQL row ID + float score = 2; + string content_json = 3; + } + repeated Hit hits = 1; } diff --git a/common/proto/search2.proto b/common/proto/search2.proto index abdd19a..3ac7dfb 100644 --- a/common/proto/search2.proto +++ b/common/proto/search2.proto @@ -3,44 +3,44 @@ syntax = "proto3"; package komp_ac.search2; service Search2 { - rpc SearchTable(Search2Request) returns (Search2Response); + rpc SearchTable(Search2Request) returns (Search2Response); } message Search2Request { string profile_name = 1; string table_name = 2; repeated ColumnFilter column_filters = 3; - optional string text_query = 4; // Optional fallback text search + optional string text_query = 4; // Optional fallback text search optional int32 limit = 5; optional string order_by = 6; optional bool order_desc = 7; } message ColumnFilter { - string column_name = 1; - FilterType filter_type = 2; - string value = 3; - optional string value2 = 4; // For range queries + string column_name = 1; + FilterType filter_type = 2; + string value = 3; + optional string value2 = 4; // For range queries } enum FilterType { - EQUALS = 0; - CONTAINS = 1; - STARTS_WITH = 2; - ENDS_WITH = 3; - RANGE = 4; - GREATER_THAN = 5; - LESS_THAN = 6; - IS_NULL = 7; - IS_NOT_NULL = 8; + EQUALS = 0; + CONTAINS = 1; + STARTS_WITH = 2; + ENDS_WITH = 3; + RANGE = 4; + GREATER_THAN = 5; + LESS_THAN = 6; + IS_NULL = 7; + IS_NOT_NULL = 8; } message Search2Response { - message Hit { - int64 id = 1; - string content_json = 2; // No score - this is SQL-based - optional string match_info = 3; // Info about which columns matched - } - repeated Hit hits = 1; - int32 total_count = 2; // Total matching records (for pagination) + message Hit { + int64 id = 1; + string content_json = 2; // No score - this is SQL-based + optional string match_info = 3; // Info about which columns matched + } + repeated Hit hits = 1; + int32 total_count = 2; // Total matching records (for pagination) } diff --git a/common/proto/table_definition.proto b/common/proto/table_definition.proto index 91effd8..1131d63 100644 --- a/common/proto/table_definition.proto +++ b/common/proto/table_definition.proto @@ -12,17 +12,14 @@ service TableDefinition { // Creates a new table (and schema if missing) with system columns, // linked-table foreign keys, user-defined columns, and optional indexes. // Also inserts metadata and default validation rules. Entirely transactional. - rpc PostTableDefinition(PostTableDefinitionRequest) - returns (TableDefinitionResponse); + rpc PostTableDefinition(PostTableDefinitionRequest) returns (TableDefinitionResponse); // Lists all profiles (schemas) and their tables with declared dependencies. // This provides a tree-like overview of table relationships. - rpc GetProfileTree(komp_ac.common.Empty) - returns (ProfileTreeResponse); + rpc GetProfileTree(komp_ac.common.Empty) returns (ProfileTreeResponse); // Drops a table and its metadata, then deletes the profile if it becomes empty. - rpc DeleteTable(DeleteTableRequest) - returns (DeleteTableResponse); + rpc DeleteTable(DeleteTableRequest) returns (DeleteTableResponse); } // A single link to another table within the same profile (schema). diff --git a/common/proto/table_structure.proto b/common/proto/table_structure.proto index ac45f6c..3c559d9 100644 --- a/common/proto/table_structure.proto +++ b/common/proto/table_structure.proto @@ -23,8 +23,7 @@ service TableStructureService { // - Normalizes data_type text (details under TableColumn.data_type) // - Returns an empty list if the table is validated but has no visible // columns in information_schema (e.g., physical table missing) - rpc GetTableStructure(GetTableStructureRequest) - returns (TableStructureResponse); + rpc GetTableStructure(GetTableStructureRequest) returns (TableStructureResponse); } // Request identifying the profile (schema) and table to inspect. diff --git a/common/proto/table_validation.proto b/common/proto/table_validation.proto index 4ffe9ec..1356123 100644 --- a/common/proto/table_validation.proto +++ b/common/proto/table_validation.proto @@ -53,8 +53,8 @@ message CharacterLimits { // Mask for pretty display message DisplayMask { - string pattern = 1; // e.g., "(###) ###-####" or "####-##-##" - string input_char = 2; // e.g., "#" + string pattern = 1; // e.g., "(###) ###-####" or "####-##-##" + string input_char = 2; // e.g., "#" optional string template_char = 3; // e.g., "_" } @@ -94,11 +94,9 @@ message PatternRules { // Service to fetch validations for a table service TableValidationService { - rpc GetTableValidation(GetTableValidationRequest) - returns (TableValidationResponse); + rpc GetTableValidation(GetTableValidationRequest) returns (TableValidationResponse); - rpc UpdateFieldValidation(UpdateFieldValidationRequest) - returns (UpdateFieldValidationResponse); + rpc UpdateFieldValidation(UpdateFieldValidationRequest) returns (UpdateFieldValidationResponse); } message UpdateFieldValidationRequest { diff --git a/common/proto/uctovnictvo.proto b/common/proto/uctovnictvo.proto index 1c4a4c3..d103314 100644 --- a/common/proto/uctovnictvo.proto +++ b/common/proto/uctovnictvo.proto @@ -5,57 +5,57 @@ package komp_ac.uctovnictvo; import "common.proto"; service Uctovnictvo { - rpc PostUctovnictvo (PostUctovnictvoRequest) returns (UctovnictvoResponse); - rpc GetUctovnictvo (GetUctovnictvoRequest) returns (UctovnictvoResponse); - rpc GetUctovnictvoCount (common.Empty) returns (common.CountResponse); - rpc GetUctovnictvoByPosition (common.PositionRequest) returns (UctovnictvoResponse); - rpc PutUctovnictvo (PutUctovnictvoRequest) returns (UctovnictvoResponse); + rpc PostUctovnictvo(PostUctovnictvoRequest) returns (UctovnictvoResponse); + rpc GetUctovnictvo(GetUctovnictvoRequest) returns (UctovnictvoResponse); + rpc GetUctovnictvoCount(common.Empty) returns (common.CountResponse); + rpc GetUctovnictvoByPosition(common.PositionRequest) returns (UctovnictvoResponse); + rpc PutUctovnictvo(PutUctovnictvoRequest) returns (UctovnictvoResponse); } message PostUctovnictvoRequest { - int64 adresar_id = 1; - string c_dokladu = 2; - string datum = 3; // Use string for simplicity, or use google.protobuf.Timestamp for better date handling - string c_faktury = 4; - string obsah = 5; - string stredisko = 6; - string c_uctu = 7; - string md = 8; - string identif = 9; - string poznanka = 10; - string firma = 11; + int64 adresar_id = 1; + string c_dokladu = 2; + string datum = 3; // Use string for simplicity, or use google.protobuf.Timestamp for better date handling + string c_faktury = 4; + string obsah = 5; + string stredisko = 6; + string c_uctu = 7; + string md = 8; + string identif = 9; + string poznanka = 10; + string firma = 11; } message UctovnictvoResponse { - int64 id = 1; - int64 adresar_id = 2; - string c_dokladu = 3; - string datum = 4; - string c_faktury = 5; - string obsah = 6; - string stredisko = 7; - string c_uctu = 8; - string md = 9; - string identif = 10; - string poznanka = 11; - string firma = 12; + int64 id = 1; + int64 adresar_id = 2; + string c_dokladu = 3; + string datum = 4; + string c_faktury = 5; + string obsah = 6; + string stredisko = 7; + string c_uctu = 8; + string md = 9; + string identif = 10; + string poznanka = 11; + string firma = 12; } message PutUctovnictvoRequest { - int64 id = 1; - int64 adresar_id = 2; - string c_dokladu = 3; - string datum = 4; - string c_faktury = 5; - string obsah = 6; - string stredisko = 7; - string c_uctu = 8; - string md = 9; - string identif = 10; - string poznanka = 11; - string firma = 12; + int64 id = 1; + int64 adresar_id = 2; + string c_dokladu = 3; + string datum = 4; + string c_faktury = 5; + string obsah = 6; + string stredisko = 7; + string c_uctu = 8; + string md = 9; + string identif = 10; + string poznanka = 11; + string firma = 12; } message GetUctovnictvoRequest { - int64 id = 1; + int64 id = 1; } diff --git a/common/src/proto/descriptor.bin b/common/src/proto/descriptor.bin index 62c30d1..a212cd5 100644 Binary files a/common/src/proto/descriptor.bin and b/common/src/proto/descriptor.bin differ diff --git a/flake.nix b/flake.nix index ab5d720..770726c 100644 --- a/flake.nix +++ b/flake.nix @@ -38,6 +38,7 @@ # Protocol Buffers compiler for gRPC protobuf protoc-gen-doc + buf ]; shellHook = '' diff --git a/server b/server index e497676..a398d72 160000 --- a/server +++ b/server @@ -1 +1 @@ -Subproject commit e4976767898b0c4e3b137fac3107a1eff6aa1399 +Subproject commit a398d721457eab5956e6516c8fcb87c3b54e603f