Skip to content

Releases: Aiven-Open/klaw

v2.3.0

10 May 09:32
bfecfd2
Compare
Choose a tag to compare

Date: 10th May, 2023

Overview

Klaw version 2.3.0 is a minor release with a couple of new features and improvements.

New features

  • React UI:
    With the switch to React, this release features a redesign of the following user interfaces:
    • Browse Connectors: Users now can use the redesigned user interface for Browse Connectors, providing a more user-friendly and intuitive interface.
    • Connectors request: Users can submit topic requests using the new UI.
    • Approve Connectors requests: Users can approve or reject Connector requests using our new UI.
    • My team’s Connectors requests: Users can see an overview over their team’s Connector requests using the new UI. They also can delete their own requests in this view.
    • Improved usability in forms: Submit buttons in forms are always enabled now. When users click submit while required fields are missing or don’t have valid input, they will see messages on all fields with errors. This gives users more autonomy. Additionally it improves the experience for users with assistive technology.

To preview the new Klaw user interfaces, open the application.properties file on the Klaw core module, and set the value of the following property to true:

#Enable new Klaw user interface
Klaw.coral.enabled=true	

  • ACL Grouping: ACLs can be grouped by Team to show all ACL information in a more succinct manner.

  • Topic Overview: Displays one environment at a time for better readability & usability.

  • Topic regex support : Topic name in a topic request can now be validated based on a regex pattern. Earlier it used to be only prefix or suffix. Regex patterns can now be used to enforce Topic naming conventions in Klaw.

Improvements

  • This release focuses on several key improvements:
  • Regex, Pattern, Suffix, breaching of maximum Partitions and Replication factor will appear as a warning on syncing existing Topics from a cluster to Klaw.
  • The Schema versions are now stored within Klaw so schemas can be searched through.
  • The React UI now has a more detailed validation for Topic names when requesting a Topic. It shows more information of required pattern, Prefix(es) as well as Suffix(es) are validated in the form itself.
  • The React UI improved general usability in forms: Submit buttons in forms are always enabled now. When users click submit while required fields are missing or don’t have valid input, they will see messages on all fields with errors. This gives users more autonomy. Additionally it improves the experience for users with assistive technology.
  • Cache enabled to retrieve topics, users and teams for query optimisation

Bugs fixes:

  • Promote Schema button only visible to the team that owns the topic and schema.
  • Topic Deletion with delete associated schema not selected now works as expected.
  • Redundant SMTP configuration has been removed the superuser mailid which is now removed and using klaw admin mail id from application.properties.
  • Filtering by status in the Connector My Team View is now working as expected
  • Forgot Password page is now accessible, no longer redirects back to the login page.

Upgrade

To upgrade to this release, download the package from https://github.com/aiven/klaw/releases/tag/2.3.0 and follow the instructions on Klaw documentation to upgrade. You can also refer to the README file for information.
The data migration utility is updated to migrate environment configs to a new column for more efficient and better readability.

Change log

Full Changelog: v2.2.0...v2.3.0

Contributors
The below contributors have contributed to this release.
Mirjam Aulbach
Samuli Suortti
Mathieu Anderson
Aindriu Lavelle
Murali Basani
Sergey Nuyanzin
Josep Prat
Harshini Rangaswamy
Mustafa Saifee
Mykhailo "Mischa" Lieibenson

Release Notes: Klaw 2.2.0

05 Apr 07:48
a920200
Compare
Choose a tag to compare

Date: 5th Apr, 2023

Overview

Klaw version 2.2.0 is a minor release with a couple of new features and improvements.

New features

  • React UI:
    With the switch to React, this release features a redesign of the following user interfaces:
    • My team’s Topic requests: Users can see an overview over their team’s Topic requests using the new UI. They also can delete their own requests in this view.
    • My team’s Subscription requests: Users can see an overview over their team’s Subscription requests using the new UI. They also can delete their own requests in this view.
    • My team’s Schema requests: Users can see an overview over their team’s Schema requests using the new UI. They also can delete their own requests in this view.

To preview the new Klaw user interfaces, open the application.properties file on the Klaw core module, and set the value of the following property to true:

#Enable new Klaw user interface
Klaw.coral.enabled=true	

  • Export Klaw Data to JSON
    Klaw now allows administrators to export the database configuration and data in three parts - admin data, requests data, and core data. This feature provides administrators with additional backup and recovery options, enabling them to manage the system more effectively.

  • ACL Information is now Masked
    To enhance security, Klaw now masks IP Addresses, certificates, and Service Account credentials from all users except the ACL owner team.
    This enhancement ensures that sensitive information is only visible to authorized personnel, improving overall security.

  • Pre Validation of Schema Compatibility
    Klaw will now check all Schema compatibility against the Schema Registry before creating the Schema Creation requests. This feature will only be bypassed during promotion when the 'force register schema' option is selected.

Improvements

  • This release focuses on several key improvements:
    • Unified Environment mapping between Kafka Clusters and Schema Registries that make the Kafka Topic the center of an environment and allows all other environments to hinge off that environment.

    • New Cluster type 'kafkarestproxy' can be added under Clusters menu to store the rest proxy url info.

    • When a Topic deletion request is approved all versions of associated Schemas will be deleted, too.

    • Service accounts that are created for Acl request for Aiven system are assigned to a team. This prevents users using the service accounts of different teams.

    • The search in Coral Approvals and Team Requests now provides a case insensitive search that will also do a partial match on topic names.

    • Description fields can now take special characters allowing more detailed information to be entered.

    • Errors returned are now more informative.

Bugs fixes:

  • In the React UI views for creating a new request errors were not identified correctly after an Api change.
  • Legacy Keycloak v10.x is now supported.

Upgrade

To upgrade to this release, download the package from https://github.com/aiven/klaw/releases/tag/2.2.0 and follow the instructions on Klaw documentation to upgrade. You can also refer to the README file for information.
There is a database change to move the topic owners team id into a new separate column from the description column. A data migration tool that was built in this release will migrate existing ‘Claim’ requests to use this new column.

Change log

Full Changelog: v2.1.0...v2.2.0

Contributors

The below contributors have contributed to this release.
Mirjam Aulbach
Samuli Suortti
Mathieu Anderson
Aindriu Lavelle
Murali Basani
Sergey Nuyanzin
Josep Prat
Anthony Callaert
Harshini Rangaswamy
Mustafa Saifee
Mykhailo "Mischa" Lieibenson

Release Notes: Klaw 2.1.0

03 Mar 10:14
627b27b
Compare
Choose a tag to compare

Date: 3rd Mar, 2023

Overview

Klaw version 2.1.0 is a minor release with a couple of new features and improvements.

New features

  • React UI:
    With the switch to React, this release features a redesign of the following user interfaces:
    • Approve & Reject Topic Requests: Users can now approve or reject topic requests using the new UI.
    • Approve & Reject Subscription Requests: (Producer/Consumer): Users can now approve or reject ACL requests for both producers and consumers using the new UI.
    • Approve & Reject Schema Requests: Users can now approve or reject schema requests using the new UI.
    • To preview the new Klaw user interfaces, open the application.properties file on the Klaw core module, and set the value of the following property to true:

Enable new Klaw user interface
Klaw.coral.enabled=true

Improvements

This release focuses on several key improvements:

  • Advanced Configuration option on Topic Promotion
  • /request/statistics API Endpoint with counts of requests and their current status
  • New Filter Parameters available on Get AclRequests/TopicRequests/ConnectorRequests/SchemaRequests
  • Extended Validation on Users Full Name and Team Contact name to allow Accents/Umlaut/Cedilla
  • Requests Return if they are editable or deletable by the requestor
  • Generate OpenApi 3.1.0 specification on the building of Klaw
  • Enums introduced for APIs for Request Status and Operation type.
  • New Unified Approval and Decline API for Requests
  • Renamed APIs for requests awaiting approval to be more descriptive.
  • Env names can now be between 2 and 10 characters long.

Bugs fixes:

  • Removed pnpm:devPreinstall as it blocked builds on windows machines
  • Docker Scripts & documentation updated to allow externalization of configuration
  • Fixed usertoken processing on accessing tenants page with AD login
  • Consistent Font Sizes on the new React UI

Upgrade

To upgrade to this release, download the package from https://github.com/aiven/klaw/releases/tag/v2.1.0 and follow the instructions on Klaw documentation to upgrade. You can also refer to the README file for information.

Database: To accommodate the ability to switch teams two new columns were added to kwusers. The Liquibase database migration framework will handle adding this column during the upgrade process.

Change log

Full Changelog: v2.0.0...v2.1.0

Contributors

The below contributors have contributed to this release.
Mirjam Aulbach
Samuli Suortti
Mathieu Anderson
Aindriu Lavelle
Murali Basani
Sergey Nuyanzin
Josep Prat
Anthony Callaert
Harshini Rangaswamy
Mustafa Saifee
Mykhailo "Mischa" Lieibenson

2.0.0

01 Feb 09:30
4dabe42
Compare
Choose a tag to compare

Release Notes: Klaw 2.0.0

Date: 1st Feb, 2023

Overview

Klaw version 2.0.0 is a major release with a couple of new features and improvements.

Breaking changes

Java 11 Support discontinued:
Klaw will no longer support Java 11. Instead, Klaw now supports Java 17 (LTS) and Java 19 (latest). Please ensure that your system is updated to one of these versions before using Klaw.

New features

  • React UI:
    With the switch to React, this release features a redesign of the following user interfaces:

    • Topic Request: Users can now submit topic requests using the new UI.

    • Subscription Request (Producer/Consumer): Users can now submit ACL requests for both producers and consumers using the new
      UI.

    • Schema Request: Users can now submit schema requests using the new UI.
      To preview the new Klaw user interfaces, open the application.properties file on the Klaw core module, and set the value of the
      following property to true:

      Enable new Klaw user interface

      klaw.coral.enabled=true

  • Schema Promotion:
    Users can now promote their schemas from lower to higher environments. They can select a specific version of the schema and
    submit a request for approval. Once the request is approved, the schema will be created in the target environment. Additionally, there
    is now an option to force-register the schema in case of any compatibility issues during registration.
    For more information, see Schema Promotion.

    Updated tenant config with below two parameters

    "orderOfSchemaPromotionEnvsList" : [ "DEV_SCH", "TST_SCH" ],
    "requestSchemaEnvironmentsList" : [ "DEV_SCH"]

  • Authorization from OAuth2 Provider/Active Directory
    With this release, users can now be authorized through an OAuth2 Provider or Active Directory. Roles for users can be defined in the
    provider, such as grants in Azure Active Directory, and Klaw will validate and assign these roles to users during the sign-up process. To
    enable the authorization feature, set the below property to value "true" in the application.properties file:

    klaw.enable.authorization.ad = true

    For more information, see Authorization.

Improvements

This release focuses on several key improvements:

  • Spring boot upgrade to 3.0.2, which includes a significant upgrade in Spring security.
  • Upgraded Java support from version 11 to version 17, and support for Java version 19.
  • Upgraded the Kafka client to 3.3.2.
  • Added integration tests with embedded kafka on Cluster API.
  • Support on service accounts for Aiven for Apache Kafka clusters
  • Docker support for multi-platforms
  • In ACL request form, topics are filtered to show only those available only in the selected environment.
  • Klaw documentation updated to include information on Authentication, Kafka Cluster migration, Tenants, Settings, and Analytics
  • Added Docker scripts to run Klaw locally based on your current working version of klaw.
  • Added Swagger plugin 2.x to generate the API specification of the backend API. Every time you run a maven install, the plugin
    generates the specs and is available in the src/main/resources folder.
  • Deep URL linking is now enabled, allowing users to be routed directly to the URL they accessed before login.
  • Increased unit tests to improve stability and code coverage.
  • Implemented the use of session storage to redirect users to their pending requests page for a more efficient experience. Previously,
    the Klaw relied on reading the URL to redirect users to their pending requests page.
  • Pem certificate support to connect to kafka clusters

Bugs fixes:

  • Fixed an issue with incorrect topic display on the schema request page.
  • Resolved an issue with the synchronization of the topics page when selecting multiple topics and improved error handling and logging.
  • Fixed a configuration error where the default field for Kafka connectors was set to topic instead of topics and added an alternative field
    topics.regex.
  • Resolved an issue with Windows AD authentication that prevented users from properly routing to the home page.
  • This fix ensures that the environments that are selectable for a 'Request Topic' or 'My Schema Request' are filtered to only show the topics defined in the tenant model under requestTopicsEnvironmentsList and requestSchemaEnvironmentsList.

Upgrade

To upgrade to this release, download the package from https://github.com/aiven/klaw/releases/tag/2.0.0 and follow the instructions on Klaw documentation to upgrade. You can also refer to the README file for information.

Database: To accommodate any schema requests with the force register option, a new parameter has been added to the schema request. A new column, forceregister, has been introduced in the kwschemarequests table. The Liquibase database migration framework will handle adding this column during the upgrade process.

Change log

Full Changelog: v1.2.0...v2.0.0

Contributors

The below contributors have contributed to this release.

Mirjam Aulbach
Samuli Suortti
Mathieu Anderson
Aindriu Lavelle
Murali Basani
Sergey Nuyanzin
Josep Prat
Anthony Callaert
Harshini Rangaswamy
Mustafa Saifee

1.2.0

15 Dec 14:59
9e41546
Compare
Choose a tag to compare

Release Notes: Klaw 1.2.0

Date: 15th Dec, 2022

Overview

Klaw version 1.2.0 is a minor release with a couple of new features and improvements.

Breaking changes

There are no breaking changes in this release.

New features

  • Introducing React UI - React is a popular open-source JavaScript library that simplifies the development of front-end applications and provides a great alternative to large, complex front-end frameworks like AngularJS. Klaw’s current user interface is built with AngularJS, which is no longer officially supported by Google. As an older framework, it does not leverage modern or component-based development.
    React, on the other hand, provides greater flexibility and modularity, making it easier to design reusable components and scale an application. Furthermore, React makes it easier to create consistent and cohesive user experiences.
    Moving to React for Klaw’s UI provides numerous benefits in terms of performance, scalability, ease of development, and support by a large community of developers. We’ve tested React with our current interface, and it looks amazing - we’re excited to start this new journey.

  • New look and feel for Browse topics:
    With the switch to React for UI, this release also introduces the redesigned user interface for Browse topics, providing a more user-friendly and intuitive interface for managing Kafka topics in Klaw. It consists of changes to the layout, styling, and overall appearance of the interface, as well as improvements to make browsing and working topics easier, more efficient, and more accessible.

    Enable new Klaw user interface

    To preview the new Klaw user user interface, open the application.properties file on the Klaw core module, and set the value of the
    following property to true:

      klaw.coral.enabled=true
    

Login to Klaw and under Topics, and click the banner with the preview link.

  • Klaw now supports Azure AD Authentication:
    Klaw now supports Azure Active Directory (Azure AD) authentication. Azure AD is an identity and access management service
    provided by Microsoft. It allows organizations to manage user access to applications and resources securely. By using Azure AD
    authentication, organizations can leverage their existing Azure AD infrastructure to manage access to Klaw.

    To enable Azure AD authentication for a Klaw user, configure the spring.cloud. Azure.active-directory.* properties in the
    application.properties file on the Klaw core module with the Azure AD properties. This configuration allows Klaw to integrate with
    Azure AD authentication enabling users to log in to Klaw using their Azure AD credentials.

    A sample configuration of Azure AD based authentication for Klaw is as shown below:

    klaw.sso.server.loginurl=/oauth2/authorization/azure
    spring.cloud.azure.active-directory.enabled=true
    spring.cloud.azure.active-directory.profile.tenant-id=tenantid
    spring.cloud.azure.active-directory.credential.client-id=clientid
    spring.cloud.azure.active-directory.credential.client-secret=client-secret
    
  • Advanced configurations for topics:
    The Request new topic function in Klaw now includes an advanced topic configuration section, where you can configure all the supported topic-level configurations available in Kafka.
    From the advanced topic configuration section, you can specify additional configuration options for Kafka topics, such as the cleanup policy, retention period, flush interval, and more.

Improvements

This release focused on improving the quality, readability, reusability, and maintainability of the Klaw codebase. Some of the key improvements include:

  • Unit tests were added for the ACLs, Topics, Users, and Teams features to achieve 90% coverage. The tests cover at least 90% of the code for these features, ensuring that a significant portion of Klaw has been thoroughly tested.
  • Custom validator for validating new topic requests in the Klaw. This custom validation can improve the modularity and maintainability of Klaw, allowing the validation logic to be isolated and easily managed.
  • Improvements to the Klaw documentation include a new Release section for easy access to all release information.
  • Refactoring the codebase of Klaw to help improve usability and readability while also making it easier for developers to work with and maintain the code.
  • You can now rename the default username for the superadmin account. Klaw includes a new property klaw.superadmin.default.username, in the appilcation.properties file on the Klaw core module that allows you to rename the superadmin user name from the default "superadmin" to a username of your choice. You can change the superadmin username during the initial setup of Klaw or at any time from the application.properties file on the Klaw core module.
  • The superadmin password property is now renamed to klaw.superadmin.default.password in the application.properties file on Klaw core module.
  • The database table 'kwtopicrequests' includes a new column 'jsonparams' to accommodate any new parameters as a part of the Advanced topic configurations. The Liquibase database migration framework will take care of adding the column while upgrading Klaw.

Bugs

A restriction in the front-end of Klaw prevents users from approving their own requests. In this case, the request is not even being sent to the backend, despite the fact that there is a validation in the backend to prevent this from happening.

Upgrade

To upgrade to this release, download the package from https://github.com/aiven/klaw/releases/tag/1.2.0 and follow the instructions on Klaw documentation to upgrade. You can also refer to the README file for information.

Additional information related to upgrade:

  • application.properties :
    React based UI - New property is introduced in core module to enable new interface based on React

    klaw.coral.enabled=true

  • Azure AD - Below configuration (in core module) is required to configure Klaw for Azure AD based Authentication

      klaw.sso.server.loginurl=/oauth2/authorization/azure
      spring.cloud.azure.active-directory.enabled=true
      spring.cloud.azure.active-directory.profile.tenant-id=tenantid
      spring.cloud.azure.active-directory.credential.client-id=clientid
      spring.cloud.azure.active-directory.credential.client-secret=client-secret
    
  • Default superadmin account - New property is introduced for the username of superadmin for first time installation

      klaw.superadmin.default.username=superadmin
    

    klaw.superadmin.default.password Property is renamed to klaw.superadmin.default.password

         klaw.superadmin.default.password=kwsuperadmin123$$
    
  • Database : To accommodate any new parameters in topic requests, a new column introduced in kwtopicrequests/jsonparams Liquibase database migration framework will take care of adding the column while upgrading.

Change log

Full Changelog: v1.1.0...v1.2.0

Contributors

The below contributors have contributed to this release.

Mirjam Aulbach
Samuli Suortti
Mathieu Anderson
Murali Basani
Sergey Nuyanzin
Josep Prat
Harshini Rangaswamy

1.1.0

04 Nov 10:12
1cc91a1
Compare
Choose a tag to compare

Release Notes : Klaw 1.1.0

Date: 4th Nov, 2022

Overview

Klaw version 1.1.0 is a minor release with a couple of new features and improvements.

Breaking changes

There are no breaking changes in this release.

New features

  • Authentication protocols: Klaw 1.1.0 includes the authentication protocols SCRAM-SHA-256 and SCRAM-SHA-512, which you can use to connect to Apache Kafka clusters.

  • Enabled JWT-based authentication: Enabled JWT-based authentication to connect to Klaw Cluster API. You can configure klaw.clusterapi.access.base64.secret in both core and cluster-api modules to enable this authentication between APIs.

  • Connect to multiple clusters using SSL: This release includes the functionality to configure Klaw to connect to multiple Apache Kafka clusters with different SSL certificates. In the application.properties file located in the src/main/resources folder, look for the line starting with ssl.* and replace it with .kafkassl.*. You can find the cluster-id from the user interface under the Clusters page.

An example configuration for cluster-id ‘dev1’ is as shown below:

dev1.kafkassl.protocol=TLS
dev1.kafkassl.key.pwd=trustme
dev1.kafkassl.keystore.location=/srv/certs/client.keystore.p12
dev1.kafkassl.keystore.pwd=trustme
dev1.kafkassl.keystore.type=PKCS12
dev1.kafkassl.truststore.location=/srv/certs/client.truststore.jks
dev1.kafkassl.truststore.pwd=trustme
dev1.kafkassl.truststore.type=JKS

Improvements

This release includes the following improvements:

  • Klaw as a Maven multi-module project. The modules include
    'Core' - Core API with user interface and cluster-api connectivity.
    'Cluster-api' - This module is cloned from the main branch of repo https://github.com/aiven/klaw-cluster-api and removes the dependency on this Git repository.
  • Improved API Exception handling.
  • Code refactoring and improvements.
  • Fixed a circular dependency issue after migration to the latest Spring version.
  • Upgraded Spring boot, Kafka, and other dependencies.
  • Makefile to build and run the application

Vulnerabilities and Bug fixes

This release includes the below.

  • Removed password authentication on Klaw Cluster API and enabled JWT authentication.
  • Actuator endpoints are now exposed for metrics, health, and info, instead of a wildcard.
  • Security Configuration endpoint now returns config only to Superusers.
  • Security Configuration endpoint now returns limited config instead of whole environment variables.
  • ACL commands should not be applied on ‘Aiven for Apache Kafka’ cluster settings. This issue is now fixed.

Upgrade

To upgrade to this release, download the package from https://github.com/aiven/klaw/releases/tag/v1.1.0 and follow the instructions on Klaw documentation to upgrade. You can also refer to the README for information.

Change log

Full Changelog: 1.0.0...1.1.0

Contributors

Murali Basani
Mirjam Aulbach
Samuli Suortti
Sergey Nuyanzin
Josep Prat
Ahmed Sobeh
Dave Beech
Stefan Arentz
Sebastian Kaiser

1.0.0

29 Sep 14:16
57f008d
Compare
Choose a tag to compare
  • Klaw (formerly Kafkawize) Initial Release 1.0.0

  • This release is cloned from master branch of https://github.com/muralibasani/kafkawize

  • Package renamed to io.aiven.klaw

  • Introduced 'kafka flavor' in the configuration of clusters

  • Changes to manage Aiven Acls

  • All occurences of Kafkawize renamed to Klaw

  • Synchronize Aiven kafka acls from cluster to Klaw (for existing Kafka clusters)

  • Few code enhancements