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})