feat(webui): download OIDC provider icons for local next/image serving#530
Merged
Conversation
This was referenced Jul 21, 2026
bziemons
requested changes
Jul 22, 2026
bziemons
approved these changes
Jul 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related to rucio/webui#805 and the WebUI-side change in rucio/webui#806.
What
For every provider listed in
RUCIO_WEBUI_OIDC_PROVIDERSthat declares aRUCIO_WEBUI_OIDC_PROVIDER_<NAME>_ICON_URL, we download the icon at containerstart into
public/oidc-icons/<NAME>.png(upper-cased name), mirroring theexisting community-logo handling. This lets the WebUI render provider icons with
next/imageinstead of a plain<img>pointing at an operator-supplied remotehost that cannot be allow-listed in
next.config'simages.remotePatterns.How this differs from #529
This is an alternative to #529. Instead of rewriting the
*_ICON_URLvalue inthe generated
.envto the local path (and unsetting it on failure), we onlyplace the file. The WebUI gateway derives the served path from the provider name
and renders the icon only when the local file exists (see rucio/webui#806), so
the container does not need to touch
.envor run before env generation, and afailed download degrades to the default icon on its own.
Details:
RUCIO_WEBUI_-prefixed environment variables directly, the samesource the community logo uses.
wget(installed in the image; curl is build-time only) and removes thedestination on failure so no 0-byte file is left behind.
set -e: a bad or unreachable icon URL logs a warning andcontainer startup continues.
Testing
Verified the download loop against sample env vars: a reachable icon lands at
public/oidc-icons/<NAME>.png, an unreachable one logs a warning and leaves nofile, and a provider without an icon URL is skipped, with the script exiting 0.