* Feature: Support more complex Protobuf files
The changes in https://github.com/provectus/kafka-ui/pull/2874 added
initial support for using more than 1 Protobuf file in Kafka UI in
absence of a proper schema registry.
This change is building upon that functionality to support more complex
scenarios in which there are multiple Protobuf files being used and not
all of them are explicitly listed (for example imports).
It's using the already present Wire library from Square to do the heavy
lifting and create a comprehensive schema from all Protobuf files and
directories listed in the Kafka UI configuration.
* Refactor schema loading logic and reuse in tests
* Add support for reading Protobufs from ZIP archives
* Remove unused ProtobufFileSerde#toLocation(Path)
* wip
* wip
* wip
* wip
* wip
* wip
* wip
---------
Co-authored-by: Jochen Schalanda <jochen.schalanda@personio.de>
Co-authored-by: iliax <ikuramshin@provectus.com>
Co-authored-by: Roman Zabaluev <rzabaluev@provectus.com>
Failover clients for SchemaRegistry, Kafka-connect, KSQL:
1. SchemeRegistry openapi client generation
2. WebClient configuration logic moved to WebClientConfigurator class
3. ReactiveFailover utility implemented
4. Connect, Ksql moved to ReactiveFailover usage
1. Add support for predefined (well-known) protobuf types.
2. `preservingProtoFieldNames` mode is enabled for proto messages formatting to fit proto file's message's field names
3. Invalid oneof-processing logic removed
4. Protobuf -> JsonSchema self-reference issue fixed
5. format added to Timestamp protobuf type
* Vite Custom Plugin code initialization , ( not building on js file )
* Fix the lazy loading functionality in vite
* add lazy loading in the Cluster page
* minor comment code cleanup
* Remove un-necessary files for configuration of the vite
* minor naming modifications
* minor code modification to encode a variable in the root
* Drop experimental endpoints
* [FE] Change message timestamp format (#3119)
* remove dayjs from the code base
* remove dayjs library and clean up the hook codes
* minor obsolete fixtures deletion
* minor provider code modifications
* minor provider code modifications
* minor linter code modifications
* minor date local and language code modifications
Co-authored-by: Roman Zabaluev <rzabaluev@provectus.com>
* removing timestamp api from the generated sources
Co-authored-by: Mgrdich <46796009+Mgrdich@users.noreply.github.com>
Co-authored-by: Mgrdich <mgotm13@gmail.com>
* Role based access control
* Fix build + checkstyle
* Refactoring, some bug fixes, review fixes
* Compile permission value patterns
* Make the resource a enum instead of a string
* Refactoring
* Make clusters required
* Fix formatting
* switch the switch case to a smart switch case
* Get rid of topic analysis actions
* Rename endpoints, fix an issue
* Return a flag indicating if rbac is on and a username
* Fix yaml indent in editorconfig
* Fix github & cognito role name fetching
* Fix case matching for actions
* Update readme
* Add an endpoint to determine if a user can create a resource
* Fix tests (I hope so)
* Fix tests
* Use spring configs instead of a separate file, rename endpoints
* Add "ALL" action
Get rid of unnecessary cache, save groups into spring auth
Review fixes
* Make "all" action case-insensitive
* Role based access control / FrontEnd (#2933)
* Initial modifications and mocking the For the RoleAccess
* fix the Suspense issue in the components , comment the Tests to implement later
* minor test comment
* Roles and configuration and santization of data
* initialize RoleCheck hook
* make the App test file visible + minor modification in the permission hook
* Structure the data so the Burger header toggle does not rerender the whole application
* add tests to the NavBar and the Page container , add tests
* NavBar and PageContainer bug fixes
* Roles Testing code modification
* covering Topics create button Actions, and Schema create button Actions
* minor typescript code modifications for the cluster required parameter in the rolesHelper
* minor typescript code modifications for the cluster required parameter in the rolesHelper
* minor code modification to describe the Permission tests more clearly
* Produce message Permissions with Tests Suites for Topic
* Add Schema Edit Permission with tests
* Minor role changes
* Add ActionButton Component to handle the Button with tooltip
* Add ActionButton Component to handle the Button with tooltip
* Add Action Button to every Button create Action
* ActionButton add test suites
* usePermission code modification to include regular expressions
* Abstract Actions Component for code repetition, add Configs Edit button Permission + add the tests suites to it.
* Schema Remove functionality Permission and Test Suites + creation of the ActionDropdownItem for Actions
* Topic Edit Clear and delete Topic , Permissions with test suites
* ActionsCell For Topic Message Overview for permissions with tests suites
* Connector Delete , Consumer Groups Permission + writing test suites
* Add Permissions to the Topics ActionCell
* Topic Table Permissions Tests Suites
* Headless Logic for the Permission Part
* add documentation for the headless Part of the permission + add modification of the data version 2 for efficient algorithmic lookup
* replace modify data logic and isPermitted function to have faster access to the data
* Add Permission helpers tests suites
* usePermission hook test suites
* BatchActionsBar add Permissions + minor modification in TopicTable tests suites
* Statistics and Metrics code Permission + add test suites
* Recreate Topic Permissions in the Topic page, add tests suites
* Actions for the Connector components
* Messages NavLink View Permission
* Test suites messages code modifications
* Permissions comment code modifications
* Replacing the Mock Data With the actual code
* Add ActionNavLink test suites
* BatchActionsBar code smell modifications
* maximizing the permissions tests suites
* maximizing the permissions tests suites
* maximizing the permissions tests suites
* Tooltip code refactoring and fix the positions issue
* permissions increase the tests coverage
* add user info at the navigation header and tests suites
* Add Global Schema Selector Permissions with test suites
* Roles minor code removal
* Change the Action Component form hook mixin approach to declarative props approach
* add isPermitted function for multiple Actions , adding tests suites for this particular case
* remove redundant Permissions test blocks from the components
* remove redundant Permissions test blocks from the components
* Action Buttons test suites' coverage + generalizing the code of the Actions
* add invalid Permission check in Action Components tests suites
* Modularization of Actions Components
* Modularization of Actions Components by adding DropDownAction to it.
* Reflect the BE Changes to the UI , by changing the default behavior or the testing of roles.
* Reflect the BE Changes to the UI , by changing the default behavior or the testing of roles.
* Get rid of not necessary usePermission mocks
* Modifications in the UserInfo data , to consider the UI without any login functionality
* minor code modifications in the BatchActionBar component
* change the Query key for the user info
* change the default message for the tooltip
* Fix the Create Role Access for Topics and Schemas
* ListPage Connector create permissions
* add Headless logic for Create Permission with test suites. + add react hook render-er
* Create Button ActionButton logic implementation
* Remove Code smells , by removing the duplications
* increase the test suites for isPermittedToCreate logic
* increase the test suites for isPermittedToCreate logic
* Change the UserResourceType Enum with the new value
* Apply New Resource Creation validation, for Topic, Schema, Connector
* Apply New Resource Creation validation, for Topic, Schema, Connector
* minor code refactor modifications
* minor code modification in the topics useCreate hook
* Async Validation for all the Create Pages
* caching test for optimal performance in async validation schemas
* Reverting the Front End Validation
* Reverting the Front End Validation
* Authorization API minor syntax modifications
* fix SmokeTests
Co-authored-by: Roman Zabaluev <rzabaluev@provectus.com>
Co-authored-by: VladSenyuta <vlad.senyuta@gmail.com>
Co-authored-by: Mgrdich <46796009+Mgrdich@users.noreply.github.com>
Co-authored-by: VladSenyuta <vlad.senyuta@gmail.com>
* SeekType fix the value during the offset and timestamp fields
* BE: thread interruption logging added to Emitters
Co-authored-by: iliax <ikuramshin@provectus.com>
* Brokers API improvements:
1. broker io rates stats added
2. active controller property set to node id
3. minor refactoring
4. FE: Add an indicator for an active broker controller
Co-authored-by: Mgrdich <mgotm13@gmail.com>
Co-authored-by: iliax <ikuramshin@provectus.com>
Co-authored-by: Hrant Abrahamyan <113341474+habrahamyanpro@users.noreply.github.com>
Co-authored-by: Mgrdich <mgotm13@gmail.com>
* ISSUE-3024: kui not working when controller not found
1. ReactiveAdminClient::getClusterVersion now takes into account that controller can not be visible
2. Uniq clientId generation added for consumers and adminClients
3. ReactiveAdminClient::toMonoWithExceptionFilter implementation simplified
* uniq adminclient clientId generation
Co-authored-by: iliax <ikuramshin@provectus.com>
* Polling throttling:
1. PollingThrottler class for per-cluster throttle managing
2. UI-publishing throttle for TailingEmitter
3. Elastic scheduler assigned for places where Serde interfaces are used
* int cast fix
* compilation fix
* test threshold fix
Co-authored-by: iliax <ikuramshin@provectus.com>
Co-authored-by: Roman Zabaluev <rzabaluev@provectus.com>
ReactiveAdminClient::listOffsetsUnsafe now skipping non-initialized partitions. This prevents UnknownTopicOrPartitionException to be leaked to high-level logic levels (preventing TopicService::loadTopicAfterCreation to do retries)
* Feature: Upgrade to Java 17 (Azul Zulu)
Java/OpenJDK 13 has reached end of life (and end of security support)
more than 2.5 years ago: https://endoflife.date/java
This change set updates the build, CI pipeline, and Docker image of Kafka UI to Java 17 (LTS).
* Add back maven-compile-plugin to kafka-ui-e2e-checks
ISSUE-2680: Smart filters stats propagation to UI :
1. DONE event type implemented to flag polling end
2. MessageFilterStats added to emitters context to count filter apply errors
ISSUE-2103: Fixing AdminClient timeout on listOffsets when partition's leader in not available:
1. ReactiveAdminClient.listOffsets methods now check if partitions have leader before executing
2. In all places where ReactiveAdminClient.listOffsets methods are used, we specify what to do if partition leader is not available - fail or skip such partitions
3. AdminClient.listOffsets calls splitted with partitionCalls