Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minor fix for README #639

Merged
merged 1 commit into from
Mar 17, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 22 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
- Create a topic
- Configure a topic
- Delete a topic
- **Browse Topic datas**
- **Browse Topic data**
- View data, offset, key, timestamp & headers
- Automatic deserialization of avro message encoded with schema registry
- Configurations view
Expand Down Expand Up @@ -89,7 +89,7 @@
- **ACLS**
- List principals
- List principals topic & group acls
- **Authentification and Roles**
- **Authentication and Roles**
- Read only mode
- BasicHttp with roles per user
- User groups configuration
Expand Down Expand Up @@ -175,8 +175,8 @@ file example can be found here :[application.example.yml](application.example.ym

### Pass custom Java opts

By default, the docker container will allow a custom jvn options setting the environnments vars `JAVA_OPTS`.
For example, if you want to change the default timezome, just add `-e "JAVA_OPTS=-Duser.timezone=Europe/Paris"`
By default, the docker container will allow a custom JVM options setting the environments vars `JAVA_OPTS`.
For example, if you want to change the default timezone, just add `-e "JAVA_OPTS=-Duser.timezone=Europe/Paris"`

### Run with another jvm.options file

Expand Down Expand Up @@ -367,7 +367,8 @@ I put oauth.ssl.endpoint_identification_algorithm = "" for testing or my certifi
* `akhq.security.default-group`: Default group for all the user even unlogged user.
By default, the default group is `admin` and allow you all read / write access on the whole app.

By default, security & roles is enabled by default but anonymous user have full access. You can completely disable security with `micronaut.security.enabled: false`.
By default, security & roles is disabled and anonymous user have full access, i.e. `micronaut.security.enabled: false`.
To enable security & roles set `micronaut.security.enabled: true` and configure desired type of authentication (basic auth, LDAP, etc.).

If you need a read-only application, simply add this to your configuration files :
```yaml
Expand Down Expand Up @@ -415,7 +416,7 @@ Define groups with specific roles for your users

3 defaults group are available :
- `admin` with all right
- `reader` with only read acces on all AKHQ
- `reader` with only read access on all AKHQ
- `no-roles` without any roles, that force user to login

##### Basic Auth
Expand All @@ -433,6 +434,9 @@ Define groups with specific roles for your users

Configure basic-auth connection in AKHQ
```yaml
micronaut:
security:
enabled: true
akhq.security:
basic-auth:
- username: admin
Expand All @@ -458,6 +462,7 @@ Configure ldap connection in micronaut
```yaml
micronaut:
security:
enabled: true
ldap:
default:
enabled: true
Expand All @@ -483,6 +488,7 @@ In Case your LDAP groups do not use the default UID for group membership, you ca
```yaml
micronaut:
security:
enabled: true
ldap:
default:
search:
Expand All @@ -503,6 +509,9 @@ with your group membership attribute

Configure AKHQ groups and Ldap groups and users
```yaml
micronaut:
security:
enabled: true
akhq:
security:
groups:
Expand Down Expand Up @@ -570,7 +579,7 @@ akhq:
google:
label: "Login with Google"
username-field: preferred_username
# specifies the field name in the oidc claim containig the use assigned role (eg. in keycloak this would be the Token Claim Name you set in your Client Role Mapper)
# specifies the field name in the oidc claim containing the use assigned role (eg. in keycloak this would be the Token Claim Name you set in your Client Role Mapper)
groups-field: roles
default-group: topic-reader
groups:
Expand All @@ -592,9 +601,9 @@ akhq:

The username field can be any string field, the roles field has to be a JSON array.

### Debugging authentification
### Debugging authentication

Debugging auth can be done increase log level on micronaut that handle most of the authentification part :
Debugging auth can be done by increasing log level on Micronaut that handle most of the authentication part :
```bash
curl -i -X POST -H "Content-Type: application/json" \
-d '{ "configuredLevel": "TRACE" }' \
Expand Down Expand Up @@ -683,7 +692,7 @@ dependencies. The akhq service in a docker compose file might look something lik
An **experimental** api is available that allow you to fetch all the exposed on AKHQ through api.

Take care that this api is **experimental** and **will** change in a future release.
Some endpoints expose too many datas and is slow to fetch, and we will remove
Some endpoints expose too many data and is slow to fetch, and we will remove
some properties in a future in order to be fast.

Example: List topic endpoint expose log dir, consumer groups, offsets. Fetching all theses
Expand Down Expand Up @@ -736,7 +745,7 @@ Or build it with a `./gradlew shadowJar`, the jar will be located here `build/li

### Development Server

A docker-compose is provided to start a development environnement.
A docker-compose is provided to start a development environment.
Just install docker & docker-compose, clone the repository and issue a simple `docker-compose -f docker-compose-dev.yml up` to start a dev server.
Dev server is a java server & webpack-dev-server with live reload.

Expand All @@ -745,10 +754,10 @@ The configuration for the dev server is in `application.dev.yml`.
### Setup local dev environment on Windows

In case you want to develop for AKHQ on Windows with IntelliJ IDEA without Docker (for any reason) you can follow this
brief guide. For the following steps please make sure that you meet this requirements:
brief guide. For the following steps, please, make sure you meet these requirements:

* OS: Windows (10)
* Kafka (2.6.0) is downloaded and extracted, the install dir is referred to as $KAFKA_HOME in the latter
* Kafka (2.6.0) is downloaded and extracted, the installation directory is referred to as $KAFKA_HOME in the latter
* Git is installed and configured
* IntelliJ IDEA (Community Edition 2020.2) with the following plugins installed:
* Gradle (bundled with IDEA)