-
Notifications
You must be signed in to change notification settings - Fork 265
Open
Description
Current Limitation
The existing /branding API is used for both management (CRUD) and runtime consumption during authentication flows.
This creates several problems:
- The term branding is misleading for what is effectively UI theming and layout configuration.
- The API is not designed as a runtime presentation contract.
- Frontend clients and SDKs must combine
/brandingwith other APIs to render sign-in, sign-up, and recovery flows. - Resolution and precedence logic (application vs OU) leaks into client implementations.
- Tight coupling between runtime experiences and management-focused APIs results in poor DX and inconsistency.
Suggested Improvement
Introduce a new runtime-focused /design endpoint to replace /branding for authentication flow consumption.
The /design endpoint should:
- Serve as the single source of truth for runtime UI presentation metadata
- Return fully resolved theme and layout definitions
- Use clear domain terminology aligned with design systems and component-driven identity
- Be safe for pre-auth, public access, and cacheable
- Be referenced by aggregated runtime endpoints such as
/flow/meta - Decouple runtime consumption from management APIs
/branding/themes
{
"totalResults": 1,
"startIndex": 1,
"count": 1,
"themes": [
{
"id": "da509d15-1fa6-4d0d-a838-926f93298d45",
"displayName": "Dracula"
}
],
"links": []
}/branding/themes/:id
{
"id": "da509d15-1fa6-4d0d-a838-926f93298d45",
"displayName": "Dracula",
"preferences": {
"direction": "ltr",
"defaultColorScheme": "dark",
"colorSchemes": {
"light": {
"colors": {
"primary": {
"main": "#BD93F9",
"dark": "#9A7FD1",
"contrastText": "#1E1F29"
},
"secondary": {
"main": "#FF79C6",
"dark": "#E56FB3",
"contrastText": "#1E1F29"
},
"background": {
"default": "#F8F8F2",
"paper": "#FFFFFF"
},
"text": {
"primary": "#1E1F29",
"secondary": "#44475A"
}
}
},
"dark": {
"colors": {
"primary": {
"main": "#FF79C6",
"dark": "#E56FB3",
"contrastText": "#282A36"
},
"secondary": {
"main": "#8BE9FD",
"dark": "#6FDCEB",
"contrastText": "#282A36"
},
"background": {
"default": "#282A36",
"paper": "#343746"
},
"text": {
"primary": "#F8F8F2",
"secondary": "#6272A4"
}
}
}
},
"shape": {
"borderRadius": "8px"
},
"typography": {
"fontFamily": "'Roboto', sans-serif"
}
}
}Version
0.20.0