keycloak.starter

-main

(-main & args)

CLI_CONFIG

create-mappers!

(create-mappers! keycloak-client realm-name client-id)

export-json

(export-json export-dir export-file-without-extension client-id path secrets)

export-secret-in-files!

(export-secret-in-files! keycloak-client realm-name client-id {:keys [name-without-extension export-dir path], :as secret-file})

export-secret-in-vault!

(export-secret-in-vault! keycloak-client {:keys [vault environment color base-domains], :as infra-context} realm-name client-id)

in infra-context, [:vault :path] is a string with placeholders as: %1$s is the environment, %2$s is the color, %3$s is the base-domains, %4$s is the client-id (client-id depends of your realm-config.clj code)

export-yaml

(export-yaml export-dir export-file-without-extension client-id path secrets)

generate-user

(generate-user username-creator-fn role group subgroup idx & opts)

init!

(init! admin-client data)(init! admin-client data infra-context secret-export-dir export-file-without-extension secret-path)

Create a structure of keycloak objects (realm, clients, roles) and fill it with groups and users

init-cli!

(init-cli! args)

init-cli-opts

init-clients!

(init-clients! admin-client realm-name clients-data infra-context export-dir secret-file-without-extension secret-path)

init-generated-users!

(init-generated-users! admin-client realm-name data group subgroup)

init-groups-and-gen-users!

(init-groups-and-gen-users! admin-client realm-name {:keys [groups], :as data})

init-realm!

(init-realm! admin-client {:keys [name themes login tokens smtp], :as realm-data})

init-roles!

(init-roles! admin-client realm-name roles-data)

init-users!

(init-users! admin-client realm-name users-data)

keycloak-auth-server-url

(keycloak-auth-server-url protocol host port)

process-args

(process-args {:keys [realm-config infra-context], :as args})