v9 -> v10
Last updated
Was this helpful?
Last updated
Was this helpful?
Keycloakify 10 has undergone significant changes compared to previous versions. The software has been nearly rewritten from the ground up, making it a more mature and stable solution. However, this also brings several breaking changes. Moving forward, Keycloakify will be more stable, and you shouldn’t have to endure a painful migration process to support the latest Keycloak versions.
This major breaking change was necessary to lay a strong foundation for the future of the project.
I’ve recorded a video summarizing all the changes. It’s quite detailed, so if you don’t have time to watch the entire video, you can refer to the updated documentation for a quicker overview:
When updating, I recommend starting fresh with the new starter and reapplying your custom changes.
If you only had a Keycloak theme:
The register-user-profile.ftl
file has been renamed to register.ftl
. The old register.ftl
, where user attributes were hardcoded, has been removed.
The update-user-profile.ftl
file has been renamed to login-update-profile.ftl
, and the old login-update-profile.ftl
has also been removed.
Don’t worry—Keycloakify still generates themes that are compatible with older Keycloak versions, including those that did not have the declarative User Profile feature.
If you haven't created or customized an account theme, set accountThemeImplementation
to "none"
in your Keycloakify configuration. You can also remove the src/keycloak-theme/account
directory if it exists.
If you had an account theme, you must set accoutThemeImplementation to "Multi-Page":
The Keycloakify Component API and boilerplate have undergone several small adjustments.
Vite starter:
Webpack (Create React App) starter:
If you had Keycloakify installed in your web app: Follow this integration guide: .
You now have the option to choose between a Single Page Account Theme or a Multi-Page Account Theme. .
One of the most notable changes is the renaming of useGetClassName
to getKcClsx
. You can view the updated implementation here: is now .
For the latest code for the new pages, refer to this repository: .
It's crucial that you reapply your changes to the new Template.tsx
instead of trying to modify your old Template.tsx
to compile. You can find the updated template here: .