Skip to content

feat: expose extended branding fields in runtime config API#2799

Merged
os-zhuang merged 2 commits into
objectstack-ai:mainfrom
akarma-synetal:feature/runtime-branding
Jul 11, 2026
Merged

feat: expose extended branding fields in runtime config API#2799
os-zhuang merged 2 commits into
objectstack-ai:mainfrom
akarma-synetal:feature/runtime-branding

Conversation

@akarma-synetal

Copy link
Copy Markdown
Contributor

Summary

  • Exposes logoUrl, faviconUrl, brandColor, pwaDescription, pwaThemeColor in /api/v1/runtime/config response
  • All fields driven by corresponding OS_* environment variables
  • Extracts /runtime/assets/* serving into a standalone createRuntimeAssetsPlugin so branding assets (logos, favicons) resolve even when the console dist hasn't been built
  • Accepts optional OS_RUNTIME_ASSETS_DIR override; falls back to process.cwd()/assets

Test plan

  • Set OS_LOGO_URL, OS_FAVICON_URL, OS_BRAND_COLOR, OS_PWA_THEME_COLOR env vars and verify response
  • Test /runtime/assets/:filename serves 200 when file exists, 404 when missing
  • Test plugin silently skips when no assets directory exists

Made with Cursor

Add logoUrl, faviconUrl, brandColor, pwaDescription, and pwaThemeColor
to the /api/v1/runtime/config response, driven by corresponding OS_*
environment variables.

Also decouples /runtime/assets/* serving from the console plugin into a
standalone createRuntimeAssetsPlugin so branding assets resolve even
when the console dist hasn't been built yet. Accepts an optional
OS_RUNTIME_ASSETS_DIR override; falls back to process.cwd()/assets.

Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel

vercel Bot commented Jul 10, 2026

Copy link
Copy Markdown

@akarma-synetal is attempting to deploy a commit to the Object Stack Team on Vercel.

A member of the Team first needs to authorize it.

Comment thread packages/cli/test/runtime-assets.test.ts Fixed
CodeQL flagged js/insecure-temporary-file (high) on the test: it built a
temp dir from a predictable `Date.now()` name and wrote into it, which is
open to a temp-file race / symlink attack in the shared OS temp dir.

Use fs.mkdtempSync() to atomically create a uniquely-named directory with
a random suffix — the pattern CodeQL recognizes as safe — and drop the now
redundant mkdirSync. Behavior is otherwise unchanged; all 3 tests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@os-zhuang
os-zhuang merged commit d9566cc into objectstack-ai:main Jul 11, 2026
12 of 15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants