adorsys / keycloak-config-cli

Import YAML/JSON-formatted configuration files into Keycloak - Configuration as Code for Keycloak.
https://adorsys.github.io/keycloak-config-cli/
Apache License 2.0
807 stars 148 forks source link

Improve config validation and editing #1122

Open thomasdarimont opened 3 months ago

thomasdarimont commented 3 months ago

Problem Statement

Currently keycloak-config-cli can detect configuration errors like missing or unknown attribute only when running against keycloak. Also when editing config files, user have to know upfront which properties are supported which is errorprone and time consuming.

Proposed Solution

It would be helpful if there were some schema support to help with the validation during editing. The schema could also be used to provide code completion in IDEs (vscode and intellij).

One way to implement this is to extract the schemes for the representations from the https://www.keycloak.org/docs-api/latest/rest-api/openapi.json OpenAPI spec and use it to validate the configuration file.

It might be necessary to generate Keycloak version specific schema files. Additionally the user should be able to supply the used Keycloak version to automatically use the proper schema file.

keycloak-config-cli should provide a "lint" command to check the configuration for potential unsupported / misspell properties.

Environment

_noresponse

Additional information

YAML validation with JSON Schema in IntelliJ YAML validation with JSON Schema in vscode

Acceptance Criteria

Configuration files can be validated automatically before applying a configuration against a Keycloak environment. Users can get auto-completion for allowed configuration properities.