mirror of
https://github.com/screentinker/screentinker.git
synced 2026-06-15 02:33:15 -06:00
A never-visited org had no cached white-label, so brand-prime fell through to the ScreenTinker default baked into the static index.html and flashed it before branding.js fetched the org brand. Now the /app route injects the resolved instance / custom-domain branding into the shell as a <meta name="ssr-brand"> (CSP blocks inline <script>, so a meta carries it), and brand-prime applies that as the fallback when the per-workspace brand is not cached yet - so the page paints the configured brand on first load instead of ScreenTinker. - server.js: /app resolves branding (publicBranding strips internal columns) and injects the HTML-escaped JSON as a meta tag; falls back to plain sendFile on any error so branding can never break the app shell. - brand-prime.js: read meta[name=ssr-brand] when there is no rd_branding_<ws>. Verified: the meta carries the resolved brand (default ScreenTinker and a platform-default white-label), internal columns do not leak, 66 unit tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| config | ||
| db | ||
| lib | ||
| middleware | ||
| player | ||
| routes | ||
| services | ||
| test | ||
| ws | ||
| .gitignore | ||
| config.js | ||
| package-lock.json | ||
| package.json | ||
| server.js | ||
| version.js | ||