Skip to content

Commit 066b5d5

Browse files
committed
Updated README
1 parent eeec418 commit 066b5d5

1 file changed

Lines changed: 3 additions & 230 deletions

File tree

README.md

Lines changed: 3 additions & 230 deletions
Original file line numberDiff line numberDiff line change
@@ -1,230 +1,3 @@
1-
# Klaw · [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![CodeQL](https://github.com/Aiven-Open/klaw/actions/workflows/codeql.yml/badge.svg?branch=main)](https://github.com/Aiven-Open/klaw/actions/workflows/codeql.yml) ![CI](https://github.com/Aiven-Open/klaw/actions/workflows/workflow-merge-to-main.yaml/badge.svg)
2-
3-
Klaw is fully opensource. 🥳
4-
5-
Klaw is a self-service Apache Kafka® Topic Management/Governance tool/portal. It is a web application which automates the process of creating and browsing Apache Kafka topics, acls, avro schemas, connectors by introducing roles/authorizations to users of various teams of an organization.
6-
7-
With several downloads every week, many more companies which did not adopt a solution, can happily move away from managing Apache Kafka configs in excelsheets, confluence, wiki pages, git etc.
8-
9-
## Built With
10-
11-
- Bootstrap UI, Angular, Javascript, HTML, CSS
12-
- [Maven](https://maven.apache.org/) - Dependency Management
13-
- A maven wrapper, mvnw is included in the Klaw Git Repo
14-
- Java (Jdk 17, 21), Spring boot 3, Spring security, SQL, Apache Kafka Admin client
15-
- Make
16-
17-
### New React UI
18-
19-
Not required but to get the latest experience we recommend also building the React UI.
20-
Latest:
21-
- [pnpm](https://pnpm.io/) (>=9.0.0 <10.0.0)
22-
- [nodejs](https://nodejs.org/) (>=20.0.0 <21.0.0)
23-
24-
Pre-20th of August 2024
25-
- [pnpm](https://pnpm.io/) (>=8.0.0 <9.0.0)
26-
- [nodejs](https://nodejs.org/) (>=18.0.0 <19.0.0)
27-
28-
If in doubt of the version you require locally you can see the information in [here](coral/package.json) under engines.
29-
30-
### Formatting
31-
32-
Formatting can be tricky so to keep a consistent java code format throughout we use the spotless maven plugin.
33-
Run the below command to format your code changes.
34-
35-
- mvn spotless:apply
36-
37-
## Versioning
38-
39-
For the versions available, see the [tags on this repository](https://github.com/aiven/klaw/tags).
40-
41-
## Architecture:
42-
43-
![Architecture](https://github.com/aiven/klaw/blob/main/arch.png)
44-
45-
## Features:
46-
47-
- Topics (approval): Create, Update, Delete, Promote
48-
- React UI is now by default enabled in the configuration. If react based assets are already built, new UI should be visible.
49-
- React UI - New look and feel for Browse topics, Create topic Request, Acl Request, Schema Request and Connector Request
50-
- React UI - New look and feel for Approving Topics, ACLs, Schemas and Connectors
51-
- React UI - New look and feel for viewing 'My team's Requests' for topics, ACLs, Schemas and Connectors
52-
- Topic Requests are now editable after creation and so you can alter them to correct any mistakes.
53-
- Acls (approval): Create,Delete
54-
- React UI - Create Acl Request
55-
- Service accounts created for ACLs are assigned to the creating team
56-
- Connectors (approval): Create
57-
- Any connector can be created as long as the required plugin libraries are installed on the server.
58-
- Connector configuration now encrypts password configuration for security.
59-
- Avro Schemas (approval): Create
60-
- View all available versions of the subjects per topic
61-
- React UI - Create Schema Request
62-
- Pre validation of Schemas compatibility on Schema request creation
63-
- Topic Overview :
64-
65-
- React UI now provides a redesigned Topic Overview and all of its capabilities to enhance the user experience.
66-
- Topic Config
67-
- Promote
68-
- Literal and Prefixed subscriptions
69-
- Topic documentation
70-
- Consumer offsets/ lag
71-
- View topic contents
72-
73-
- View created, completed, declined, all Topic requests
74-
- View created, completed, declined, all Acl requests
75-
- View created, completed, declined, all Connector requests
76-
- View created, completed, declined, all Avro schema requests
77-
78-
- Synchronization (migration) from and to Apache Kafka clusters (Topics, Acls, Schemas and Connectors)
79-
- Reconciliation and email notifications on differences between Klaw and Clusters
80-
- Restore configuration (topics, acls)
81-
82-
- Login
83-
- Azure / Active directory integration
84-
- Single Sign-on (OAuth2)
85-
- Based on database
86-
- Configure Clusters and Environments
87-
88-
- Clusters can be created connecting to Apache Kafka clusters. (Cluster Management Api should be configured)
89-
- Environments are wrappers over clusters, enforcing flexible configs like prefix, suffix etc
90-
- Kafka Rest Proxy can be added to the cluster to store the rest proxy url information.
91-
92-
- Users, Teams & Authorizations
93-
94-
- Configurable users, teams
95-
- More than 35 permissions
96-
- Configurable roles (Roles can be pulled from AD for authorization)
97-
- Ability to switch between different teams
98-
99-
- Topic naming conventions
100-
101-
- Enforce prefix, suffixes and/or regex per environment
102-
103-
- Excel report (for your team and all teams, depending on the role)
104-
105-
- Topics per cluster (for teams)
106-
- Partitions per cluster
107-
- Overall topics in all clusters
108-
- Acls per cluster (for teams)
109-
- Producer Acls (for teams)
110-
- Consumer Acls (for teams)
111-
- Consumer groups of all environments
112-
- Requests per day
113-
114-
- Analytics
115-
116-
- View charts of topics, partitions, acls, requests
117-
118-
- Multi tenancy
119-
120-
- Each tenant can manage their topics with their own teams in isolation.
121-
- Every tenant can have their own set of Kafka environments, and users
122-
of one tenant cannot view/access topics, acls or any from other tenants.
123-
- It provides an isolation avoiding any security breach.
124-
125-
- Apache Kafka Connectivity
126-
127-
- PLAINTEXT, SSL, SASL
128-
129-
- Audit
130-
131-
- All topic, acl, schema and connector requests
132-
133-
- Email notifications when
134-
135-
- requests are created, approved, declined
136-
- users are created, approved
137-
138-
- Help Wizard to setup Klaw
139-
140-
[See Features of Klaw in docs](https://www.klaw-project.io/docs/features)
141-
142-
## Documentation
143-
144-
- User documentation : https://klaw-project.io/docs
145-
- Technical documentation for contributors:
146-
- general documentation: [`./docs`](./docs)
147-
- specific documentation for the React app `coral`: [`./coral/docs`](./coral/docs)
148-
- [Contribute to improving the Klaw documentation here](https://github.com/aiven/klaw-docs)
149-
150-
## Questions and Answers
151-
152-
We encourage everyone to ask question, if you have a question someone else definitely does too.
153-
154-
- [Ask in Klaw Community forum](https://aiven.io/community/forum/new-topic?category=open-source&tags=klaw)
155-
- [Read in Klaw Community forum](https://aiven.io/community/forum/c/open-source/12?tags=klaw)
156-
- [Ask and read in Klaw GitHub discussions](https://github.com/aiven/klaw/discussions)
157-
158-
The Klaw team will cross post questions and answers across both forums. The Klaw Community Support forum, which is hosted and supported by Aiven directly, has more visibility for other interested parties, so we would encourage questions to be asked there. We will respond and answer questions in both GitHub discussions and the Community Forum.
159-
160-
## Install
161-
162-
### Manual
163-
164-
##### Use the Maven Wrapper
165-
166-
- ./mvnw clean install
167-
168-
##### Use your own Maven
169-
170-
- mvn clean install
171-
172-
Optional step : For new React UI assets, make sure pnpm is pre installed which is required to build coral assets.
173-
174-
Builds two artifacts core/target/klaw-<version>.jar and cluster-api/target/cluster-api-<version>.jar
175-
176-
and follow steps defined at https://klaw-project.io/docs or run the binaries like below
177-
178-
java -jar core/target/klaw-<version>.jar
179-
180-
java -jar cluster-api/target/cluster-api-<version>.jar --spring.config.location=cluster-api/target/classes/application.properties
181-
182-
Or run bin/run-klaw.sh for Mac/Linux
183-
184-
### With `make`
185-
186-
1. Clone this repo containing two maven modules (core and cluster-api) : `git clone git@github.com:aiven/klaw.git`
187-
2. Run `make` to install dependencies and setup both Klaw Core and the Klaw-Cluster-Api
188-
3. [Optional] edit any configs using `make edit-core-config` for Klaw Core or `make edit-cluster-api-config` for Klaw-Cluster-API
189-
4. To run, you can use `make run-core` and `make run-cluster-api` in different terminal windows or you can run `make -j2 run-core run-cluster-api` to execute both (NOTE: this will mix output and make debugging harder)
190-
191-
### With `docker`
192-
193-
#### Dockerhub
194-
195-
Each official release is available on docker in the two repositories.
196-
The [klaw-core](https://hub.docker.com/r/aivenoy/klaw-core) docker hub page contains an example docker-compose file which will help download and deploy Klaw.
197-
The [cluster-api](https://hub.docker.com/r/aivenoy/klaw-cluster-api) can also be found separately on docker hub.
198-
199-
#### Locally
200-
201-
This project also has the ability to build and deploy local docker images using scripts provided in Klaw/docker-scripts .
202-
203-
## License
204-
205-
Klaw is licensed under the Apache license, version 2.0. Full license text is
206-
available in the [LICENSE.md](LICENSE.md) file.
207-
208-
Please note that the project explicitly does not require a CLA (Contributor
209-
License Agreement) from its contributors.
210-
211-
## Contact
212-
213-
Bug reports and patches are very welcome, please post them as GitHub issues
214-
and pull requests at https://github.com/aiven/klaw . Any possible
215-
vulnerabilities or other serious issues should be reported directly to the
216-
maintainers <opensource@aiven.io>.
217-
218-
## Trademark
219-
220-
Apache Kafka is either a registered trademark or trademark of the Apache Software Foundation in the United States and/or other countries.
221-
All product and service names used in this page are for identification purposes only and do not imply endorsement.
222-
223-
## Credits
224-
225-
Klaw (formerly Kafkawize) is maintained by, [Aiven](https://aiven.io/) open source developers.
226-
227-
Recent contributors are listed on the GitHub project page,
228-
https://github.com/aiven/klaw/graphs/contributors
229-
230-
Copyright (c) 2024 Aiven Oy and klaw project contributors.
1+
## Подготовка к работе
2+
1. Shift-Shift, `Project Structure`, выберите JDK 17 или 21 в качестве SDK
3+
2. Shift-Shift, `Execute Maven Goad`, `-DskipTests=true install -f pom.xml`

0 commit comments

Comments
 (0)