From 1e5f4012f09279b326e15db3dd5d2452375defae Mon Sep 17 00:00:00 2001 From: Bryan Frimin Date: Wed, 18 Mar 2026 20:15:31 +0100 Subject: [PATCH] Add dynamic favicon for trust center using file API Use the trust center's logo as favicon via the public file API URL, falling back to the default favicon when no logo is configured. Signed-off-by: Bryan Frimin --- apps/trust/index.html | 2 +- pkg/server/server.go | 19 ++++++++++++++----- pkg/server/trust/trust.go | 1 + 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/apps/trust/index.html b/apps/trust/index.html index dc311f698..c4016b562 100644 --- a/apps/trust/index.html +++ b/apps/trust/index.html @@ -27,7 +27,7 @@ --> - + diff --git a/pkg/server/server.go b/pkg/server/server.go index c0aa8bbdd..0c44c755b 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -98,7 +98,7 @@ func NewServer(cfg Config) (*Server, error) { return nil, err } - trustWebServer, err := trust_web.NewServer(compliancePageHeadData(cfg.Trust)) + trustWebServer, err := trust_web.NewServer(compliancePageHeadData(cfg.BaseURL, cfg.Trust)) if err != nil { return nil, err } @@ -197,7 +197,7 @@ func (s *Server) TrustCenterHandler() http.Handler { return r } -func compliancePageHeadData(trustService *trust.Service) trust_web.HeadDataFunc { +func compliancePageHeadData(baseURL *baseurl.BaseURL, trustService *trust.Service) trust_web.HeadDataFunc { return func(r *http.Request) trust_web.HeadData { tc := compliancepage.CompliancePageFromContext(r.Context()) if tc == nil { @@ -209,12 +209,21 @@ func compliancePageHeadData(trustService *trust.Service) trust_web.HeadDataFunc return trust_web.HeadData{Title: "Compliance Page"} } - baseURL := compliancepage.CompliancePageBaseURLFromContext(r.Context()) + compliancePageBaseURL := compliancepage.CompliancePageBaseURLFromContext(r.Context()) - return trust_web.HeadData{ + headData := trust_web.HeadData{ Title: org.Name + " — Compliance", Description: org.Name + " Compliance Page", - OGURL: ref.UnrefOrZero(baseURL), + OGURL: ref.UnrefOrZero(compliancePageBaseURL), } + + if tc.LogoFileID != nil { + faviconURL, err := baseURL.WithPath("/api/files/v1/" + tc.LogoFileID.String()).String() + if err == nil { + headData.FaviconURL = faviconURL + } + } + + return headData } } diff --git a/pkg/server/trust/trust.go b/pkg/server/trust/trust.go index 3ef85a239..cee84de73 100644 --- a/pkg/server/trust/trust.go +++ b/pkg/server/trust/trust.go @@ -31,6 +31,7 @@ type ( Title string Description string OGURL string + FaviconURL string } HeadDataFunc func(r *http.Request) HeadData