Instance branding in Topologix

Infrastructure & Networking

An instance can show “Powered by …” logos of its partners — for example the cloud it runs on and the provider that operates it — on the sign-in screens, the public pages and a slim line under every signed-in page. The instance super admin sets them up in Admin → System → Branding; there is one set per instance. Topologix ships no third-party logo: upload only marks the instance has the right to use (AWS, for example, publishes a “Powered by AWS” badge for its customers under its trademark guidelines).

Requirements

  • A super admin account on the instance.
  • The partner logos as PNG, JPEG, WebP or SVG, at most 512 KB each — and optionally a second version for dark backgrounds.

Set it up

  1. Open Admin → System → BrandingSigned in as a super admin, open Admin, the System tab, and scroll to Branding.
  2. Add the partnersClick Add partner (up to 6). For each: the label (default “Powered by”, up to 40 characters), the name (up to 60 — it is also the logo’s alternative text), an optional link (https:// only; it opens in a new tab), the logo and, optionally, a logo for dark backgrounds. The arrows set the order.
  3. Choose whereSign-in screens (below the sign-in card, and on the sign-up, password-reset and e-mail confirmation screens), Public pages (the landing page footer and the Privacy / Terms / Security / Status / Docs pages) and In the app (a slim line under every signed-in page). All three are on by default.
  4. Check the preview, then saveThe preview shows the logos on a light and on a dark background exactly as visitors will get them. Turn on Show “Powered by” and click Save Branding. Sign out to see the sign-in screen.

What happens to an uploaded logo

Every logo is converted to a PNG

The server recognises the file by its content (never by its name), decodes it and stores a new PNG that fits 320 × 120 pixels, without any metadata (camera or editor data, EXIF). An SVG is turned into an image when it is uploaded: the SVG itself is never stored or shown, so nothing in it can run. An SVG that declares entities is refused. A file over 512 KB is refused (413); a file that is not a PNG, JPEG, WebP or SVG is refused (415).

Light and dark

The sign-in screens and the public pages are always dark; signed-in pages follow each user’s theme. Where a partner has a logo for dark backgrounds it is used on dark surfaces and the main logo on light ones; without one, the main logo is used on both — check the dark preview.

Saving the branding deletes the logos it no longer uses. A logo uploaded but never saved is deleted by a later save once it is an hour old.

What visitors load

Public, same origin, nothing else

The sign-in screen reads GET /api/auth/branding (the partners’ labels, names, links and logo addresses, and where to show them — nothing when branding is off) and each logo from /api/auth/branding/logo/<sha256>.png. Both are public and served by the instance itself, so the page’s content security policy stays “images from this site only”. A logo is served as image/png with X-Content-Type-Options: nosniff, Content-Security-Policy: default-src 'none' and a one-day immutable cache (a new upload gets a new address).

  • The bundled nginx site answers these two paths without the sign-in rate limit, so a page with several logos never slows down a sign-in; they accept GET only.
  • Every logo upload and every save writes an activity entry (Admin → Activity).

Good to know

  • Turning Show “Powered by” off hides every placement at once and keeps the partners for later.
  • The in-app line sits under the page content (never over the canvas or a phone’s panels); on a phone it shows the logos only.

All integrations →

See it on your own infrastructure

Book a demo and we will walk you through Topologix with your systems in mind: on our cloud, or self-hosted in your own network.