-
Notifications
You must be signed in to change notification settings - Fork 139
feat(ui): add keycloak theme #1881
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
Conversation
Summary of ChangesHello @kapetr, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the user authentication experience for AgentStack by introducing a custom Keycloak theme. The new theme provides a modern, branded login interface, leveraging React and Carbon components for a responsive and accessible design. A key feature is the seamless dark mode support, which persists across the application. The changes also streamline the theme's lifecycle, from development and compilation using Keycloakify to its deployment within the existing infrastructure via Helm, offering flexibility for both production and development environments. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces a custom Keycloak theme for AgentStack using Keycloakify, integrating it into the build pipeline and deployment process. The changes include adding a new keycloak-theme application with its own dependencies, scripts, and configurations for development and deployment. The theme uses Carbon components and supports dark mode. The Helm charts have been updated to conditionally deploy the custom theme either as a built-in Docker image or via ConfigMap. Overall, the implementation is well-structured and follows good practices for integrating a custom Keycloak theme.
f54d57f to
1785d5b
Compare
Signed-off-by: Petr Kadlec <petr@puradesign.cz>
PetrBulanek
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We already have this code copy-pasted in three places. It's definitely not the scope of this PR, but maybe we could think about how to centralize it. Perhaps into a separate app, similar to linting?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, for sure. I would have done it already here, but I didnt want a separate app for that (that's quite a minor piece of code for a separate app) and agentstack-ui can't be dependency here. But we can at least do that for web and ui, and maybe just include it here via relative path, not via module, or leave it as is here.
apps/keycloak-theme/index.html
Outdated
| href="/favicon-dark.svg" | ||
| media="(prefers-color-scheme: dark)" | ||
| /> | ||
| <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we actually use this file, do we?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's vite entrypoint file, we do need it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I meant the favicon file favicon-32x32.png. Sorry for not making myself clearer. :-)
Signed-off-by: Petr Kadlec <petr@puradesign.cz> feat(ui): add keycloak pages - register, terms, login reset Signed-off-by: Petr Kadlec <petr@puradesign.cz> feat(ui): keycloak theme final updates, deployment setup Signed-off-by: Petr Kadlec <petr@puradesign.cz> Signed-off-by: Petr Kadlec <petr@puradesign.cz> Signed-off-by: Petr Kadlec <petr@puradesign.cz>
Signed-off-by: Petr Kadlec <petr@puradesign.cz>
63dab26 to
a2d3c71
Compare
Signed-off-by: Petr Kadlec <petr@puradesign.cz>
| <Warning> | ||
| **Email Verification Required:** Agent Stack requires the `email_verified` claim to be `true` in JWT tokens. When configuring external identity providers in Keycloak, ensure that: | ||
| - Users verify their email addresses before authenticating | ||
| - The `email_verified` claim is mapped to the token (this is included by default in the `email` scope) | ||
| - External providers pass the email verification status correctly | ||
|
|
||
| Without verified emails, authentication will fail with "Verified email not found" error. | ||
| </Warning> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jezekra1 Please review
Signed-off-by: Petr Kadlec <petr@puradesign.cz>
Signed-off-by: Petr Kadlec <petr@puradesign.cz>
Signed-off-by: Petr Kadlec <petr@puradesign.cz>

Summary
This PR adds a custom Keycloak theme for AgentStack using Keycloakify to generate theme artifacts. The login page uses Carbon components and supports dark mode with theme persistence across the main application. Keycloakify has been integrated into the build pipeline to compile the React-based theme into Keycloak-compatible resources, which are packaged as a JAR file and deployed via Helm charts.
Linked Issues
Closes #1860
Documentation
If this PR adds new feature or changes existing. Make sure documentation is adjusted accordingly. If the docs is not needed, please explain why.