lablup / lablup/backend.ai-webui

App config: serve the domain appearance document and unify the theme bootstrap

Open
#5,127 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
133
Forks
81
Avg merge
1d 11h
Merged PRs (30d)
344

Description

### Summary

Serve the domain appearance document from app config and unify the theme bootstrap. Middle PR of the app-config stack (base: FR-3605's v2 document; top: theme-family/Branding ticket). PR: #8860 (rebased onto the FR-3605 branch).

### Scope

- **GraphQL schema sync** — copy the backend's checked-in supergraph into `data/schema.graphql` (26.9.0 app config APIs: `myAppConfigs`, `publicAppConfigs`, `myAppConfigFragmentsByNames`, `scopedAppConfigFragmentsByNames`, `myUpsertAppConfigFragments`, `scopedUpsertAppConfigFragments`, `DomainV2.entityId`), regenerate Relay artifacts, map the `JSON` scalar in `relay-base.config.js`. Ripple: model-definition `name`/`modelPath`/`port` turned nullable on preset outputs → normalize in `AdminDeploymentPresetSettingPageContent`.
- **Storage** — the domain document is stored wholesale under the `appearance` subKey of `publicConfigByDomain` (anonymous-readable, superadmin-writable).
- **Bootstrap unification** — `loadCustomThemeConfig()` (index.tsx, one shot) fetches `theme.json` and the anonymous domain document (`POST /func/v2/app-config/public/get`) in parallel, resolves **domain slice wins wholesale, else theme.json**, dispatches a single `custom-theme-loaded`. Pre-login the domain comes from config.toml `general.apiDomainName` (BA-7405/BA-7406); post-login the session domain wins.
- **No refresh state machine** — a session that could not fetch (fresh Electron install with no endpoint, transient failure) keeps `theme.json` until the next reload (accepted per design review).

### Acceptance criteria

- The domain's v2 appearance document served from app config themes the WebUI without any operator `theme.json` on the web server.
- With no domain document, `theme.json` behavior is unchanged.

JIRA Issue: FR-1964

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.