Skip to main content

White-Labelling

CET2's product name is a runtime setting, not something baked into the build. Any organisation deploying their own instance can brand it as their own — e.g. an MSP called Getronics running CET2 could set it up as "Getronics Endpoint Toolkit" — with a single configuration value and no rebuild.

How it works

  • The backend exposes the brand name via a small public, unauthenticated endpoint: GET /api/branding{ "brandName": "..." }. It's unauthenticated deliberately — the sign-in screen needs to show the right brand before anyone has signed in.
  • The frontend fetches it once on load and uses it everywhere the product name appears: the sign-in screen, the sidebar, the browser tab title, and the post-consent confirmation screen.
  • If the fetch is slow or fails, the UI falls back to a neutral placeholder ("Endpoint Toolkit") rather than showing an error — branding is cosmetic and never blocks the app from working.

Setting it

Set the Cet2:BrandName configuration value (see Configuration):

{
"Cet2": {
"BrandName": "Getronics Endpoint Toolkit"
}
}

As an App Service application setting: Cet2__BrandName. If you're using the One-Click Deploy template, it's the brandName parameter, prompted for alongside the tenant and app registration details.

If unset, it defaults to ClefSoft Endpoint Toolkit.

What's covered, and what isn't

✅ Product name in the UISign-in screen, sidebar, browser tab, onboarding confirmation
✅ No rebuild requiredChange Cet2:BrandName and reload — takes effect immediately
❌ Logo / faviconCurrently a fixed shield icon; not yet configurable per deployment
❌ Colour themeCurrently a fixed coral accent; not yet configurable per deployment
❌ Per-tenant brandingOne brand name per instance, not per customer tenant within a multi-tenant instance — see Architecture Overview for the multi-tenant model this sits on top of

Logo and colour theming are natural extensions of this same mechanism if you need them — they'd follow the identical pattern (a config value, served from /api/branding, consumed at runtime).