feat(ui): Add customizable OIDC login screen branding#1583
Conversation
As per TwiN#1579, this PR allows for some customizations in the OIDC login screen: - If a logo is set it will be displayed alongside the Gatus one - New ui config `ui.login-subtitle`: customises the message in the screen - If set, use `ui.header` will be used to customise the title I haven't commited the web static assets. I believe that's triggered with a comment? let me know if I should be doing it. Also please clarify if I've forgotten about something here, this is my first pr.
cf37bd3 to
f9b22cf
Compare
|
/regenerate-static-assets |
|
@TwiN There was an issue regenerating static assets. Please check the workflow run logs for more details. |
There was a problem hiding this comment.
Pull request overview
Adds configurable branding/text to the OIDC login screen so instances can present organization-specific identity rather than a fixed Gatus-only login view.
Changes:
- Update OIDC login UI to optionally show a custom logo alongside the Gatus logo and use
ui.headeras the login title. - Introduce new UI config
ui.login-subtitlesurfaced to the frontend viawindow.config. - Add backend config field/defaulting + tests, and document the new UI option in the README.
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| web/app/src/App.vue | Uses header and new loginSubtitle for the OIDC login screen and shows co-branding when logo is set. |
| web/app/public/index.html | Adds loginSubtitle into the server-templated window.config object. |
| README.md | Documents ui.login-subtitle and clarifies how ui.header/ui.logo affect the OIDC login page. |
| config/ui/ui.go | Adds LoginSubtitle to UI config, default value, and defaulting logic. |
| config/ui/ui_test.go | Extends UI config tests to cover LoginSubtitle defaults and preservation. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <CardTitle class="text-3xl">Gatus</CardTitle> | ||
| <p class="text-muted-foreground mt-2">System Monitoring Dashboard</p> | ||
| <div v-if="logo" class="flex items-center justify-center gap-4 mb-4"> | ||
| <img :src="logo" alt="" class="w-20 h-20 object-contain" /> |
There was a problem hiding this comment.
The custom logo image uses an empty alt attribute. Since this logo is meaningful branding on the login screen (not purely decorative), provide a descriptive alt text (e.g., derived from header/a dedicated config value) so screen readers can announce it appropriately.
| <img :src="logo" alt="" class="w-20 h-20 object-contain" /> | |
| <img :src="logo" :alt="header || 'Status page logo'" class="w-20 h-20 object-contain" /> |
|
Excellent work! |
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/twin/gatus](https://github.com/TwiN/gatus) | minor | `v5.35.0` → `v5.36.0` | --- ### Release Notes <details> <summary>TwiN/gatus (ghcr.io/twin/gatus)</summary> ### [`v5.36.0`](https://github.com/TwiN/gatus/releases/tag/v5.36.0) [Compare Source](TwiN/gatus@v5.35.0...v5.36.0) ##### What's Changed - perf: Add PostgreSQL indexes for \~15x performance improvement by [@​ozanonurtek](https://github.com/ozanonurtek) in [#​1541](TwiN/gatus#1541) - fix(alerting): Remove square brackets from email subject by [@​jaydeethree](https://github.com/jaydeethree) in [#​1586](TwiN/gatus#1586) - fix(security): Do not allow invalid security configs by [@​PythonGermany](https://github.com/PythonGermany) in [#​1531](TwiN/gatus#1531) - fix: return error from rdapQuery when no expiration event found by [@​majiayu000](https://github.com/majiayu000) in [#​1603](TwiN/gatus#1603) - fix(ci): regenerate-static-assets workflow reporting false errors on success by [@​Copilot](https://github.com/Copilot) in [#​1614](TwiN/gatus#1614) - feat(ui): Add customizable OIDC login screen branding by [@​hluaces](https://github.com/hluaces) in [#​1583](TwiN/gatus#1583) - fix(test): Remove t.Parallel() from tests racing on injectedHTTPClient by [@​Copilot](https://github.com/Copilot) in [#​1630](TwiN/gatus#1630) - fix(storage): close rows before nested queries to prevent PostgreSQL driver error by [@​osalloum](https://github.com/osalloum) in [#​1503](TwiN/gatus#1503) - docs: Document remote.client configuration by [@​surdaft](https://github.com/surdaft) in [#​1637](TwiN/gatus#1637) - fix: update lib/pq to v1.11.2 to fix Supabase PostgreSQL connection regression by [@​wahajahmed010](https://github.com/wahajahmed010) in [#​1644](TwiN/gatus#1644) ##### New Contributors - [@​ozanonurtek](https://github.com/ozanonurtek) made their first contribution in [#​1541](TwiN/gatus#1541) - [@​jaydeethree](https://github.com/jaydeethree) made their first contribution in [#​1586](TwiN/gatus#1586) - [@​majiayu000](https://github.com/majiayu000) made their first contribution in [#​1603](TwiN/gatus#1603) - [@​hluaces](https://github.com/hluaces) made their first contribution in [#​1583](TwiN/gatus#1583) - [@​osalloum](https://github.com/osalloum) made their first contribution in [#​1503](TwiN/gatus#1503) - [@​surdaft](https://github.com/surdaft) made their first contribution in [#​1637](TwiN/gatus#1637) - [@​wahajahmed010](https://github.com/wahajahmed010) made their first contribution in [#​1644](TwiN/gatus#1644) **Full Changelog**: <TwiN/gatus@v5.35.0...v5.36.0> </details> --- ### Configuration 📅 **Schedule**: (in timezone America/New_York) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xODIuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE4Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19--> Reviewed-on: https://git.greyrock.io/greyrock-labs/home-ops/pulls/82
…(#577) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/twin/gatus](https://github.com/TwiN/gatus) | minor | `v5.35.0` → `v5.36.0` | --- ### Release Notes <details> <summary>TwiN/gatus (ghcr.io/twin/gatus)</summary> ### [`v5.36.0`](https://github.com/TwiN/gatus/releases/tag/v5.36.0) [Compare Source](TwiN/gatus@v5.35.0...v5.36.0) ##### What's Changed - perf: Add PostgreSQL indexes for \~15x performance improvement by [@​ozanonurtek](https://github.com/ozanonurtek) in [#​1541](TwiN/gatus#1541) - fix(alerting): Remove square brackets from email subject by [@​jaydeethree](https://github.com/jaydeethree) in [#​1586](TwiN/gatus#1586) - fix(security): Do not allow invalid security configs by [@​PythonGermany](https://github.com/PythonGermany) in [#​1531](TwiN/gatus#1531) - fix: return error from rdapQuery when no expiration event found by [@​majiayu000](https://github.com/majiayu000) in [#​1603](TwiN/gatus#1603) - fix(ci): regenerate-static-assets workflow reporting false errors on success by [@​Copilot](https://github.com/Copilot) in [#​1614](TwiN/gatus#1614) - feat(ui): Add customizable OIDC login screen branding by [@​hluaces](https://github.com/hluaces) in [#​1583](TwiN/gatus#1583) - fix(test): Remove t.Parallel() from tests racing on injectedHTTPClient by [@​Copilot](https://github.com/Copilot) in [#​1630](TwiN/gatus#1630) - fix(storage): close rows before nested queries to prevent PostgreSQL driver error by [@​osalloum](https://github.com/osalloum) in [#​1503](TwiN/gatus#1503) - docs: Document remote.client configuration by [@​surdaft](https://github.com/surdaft) in [#​1637](TwiN/gatus#1637) - fix: update lib/pq to v1.11.2 to fix Supabase PostgreSQL connection regression by [@​wahajahmed010](https://github.com/wahajahmed010) in [#​1644](TwiN/gatus#1644) ##### New Contributors - [@​ozanonurtek](https://github.com/ozanonurtek) made their first contribution in [#​1541](TwiN/gatus#1541) - [@​jaydeethree](https://github.com/jaydeethree) made their first contribution in [#​1586](TwiN/gatus#1586) - [@​majiayu000](https://github.com/majiayu000) made their first contribution in [#​1603](TwiN/gatus#1603) - [@​hluaces](https://github.com/hluaces) made their first contribution in [#​1583](TwiN/gatus#1583) - [@​osalloum](https://github.com/osalloum) made their first contribution in [#​1503](TwiN/gatus#1503) - [@​surdaft](https://github.com/surdaft) made their first contribution in [#​1637](TwiN/gatus#1637) - [@​wahajahmed010](https://github.com/wahajahmed010) made their first contribution in [#​1644](TwiN/gatus#1644) **Full Changelog**: <TwiN/gatus@v5.35.0...v5.36.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19--> Reviewed-on: https://git.erwanleboucher.dev/eleboucher/homelab/pulls/577
As per #1579, this PR allows for some customizations in the OIDC login screen:
ui.login-subtitle: customises the message in the screenui.headerwill be used to customise the titleI haven't commited the web static assets. I believe that's triggered with a comment? let me know if I should be doing it.
Also please clarify if I've forgotten about something here, this is my first pr.