You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`show_admin`|`true`| Show admin panel and keeper controls in the sidebar |
45
-
|`start_nav_open`|`false`| Navigation drawer open by default (collapsed shows icons only) |
46
-
|`hide_nav_bar`|`false`| Completely hide the left navigation sidebar |
47
-
|`disable_right_panel`|`false`| Disable the right sidebar panel |
48
-
|`allow_select_model`|`false`| Allow LLM model selection |
49
-
|`session_type`|`non-persistent`| Chat session persistence (`non-persistent` or `persistent`) |
50
-
|`history_mode`|`hash`| Browser history mode (`hash` or `history`) |
53
+
Passed to the Web Host as `feature.*` — control UI behavior and visibility.
54
+
55
+
| Requirement | Default | Type | Description |
56
+
|---|---|---|---|
57
+
|`show_admin`|`true`| bool (`~= "false"`) | Show admin panel and keeper controls in the sidebar |
58
+
|`start_nav_open`|`false`| bool (`== "true"`) | Navigation drawer open by default (collapsed shows icons only) |
59
+
|`hide_nav_bar`|`false`| bool (`== "true"`) | Completely hide the left navigation sidebar |
60
+
|`disable_right_panel`|`false`| bool (`== "true"`) | Disable the right sidebar panel |
61
+
|`allow_select_model`|`false`| bool (`== "true"`) | Allow LLM model selection dropdown in chat |
62
+
|`session_type`|`non-persistent`| string | Chat session persistence (`non-persistent` or `cookie`) |
63
+
|`history_mode`|`hash`| string | Browser history mode (`hash` or `history`/`browser`) |
64
+
65
+
> **Boolean parsing:**`show_admin` defaults to `true` (any value except `"false"` is truthy). All other boolean flags default to `false` (only `"true"` is truthy). This is implemented in `config_handler.lua`.
|`custom_css`| Poppins font `@import`|`customization.custom_css`| Raw CSS string injected as `<style>` into host and child iframes. Use for font imports, body font-family, and custom rules. |
80
+
|`css_variables`|`{}`|`customization.css_variables`| JSON object of CSS custom properties (e.g. `{"--p-primary":"#6366f1"}`). Injected as `:root { --key: value; }` overrides. Supports `@dark` and `@light` variants. |
81
+
|`icons`|`{}`|`customization.icons`| JSON object of custom Iconify icons (e.g. `{"logo":{"body":"<svg>...</svg>","width":24,"height":24}}`). Registered under `custom:` prefix — use as `custom:logo`. |
58
82
59
83
## Usage
60
84
@@ -68,13 +92,11 @@ API URL and WebSocket URL are derived from the `domain` requirement. If `domain`
68
92
value: app:gateway
69
93
- name: router
70
94
value: app:api.public
71
-
- name: domain
72
-
value: localhost:8085
73
95
```
74
96
75
97
Only override what differs from defaults.
76
98
77
-
### Page-only app (no chat sidebar)
99
+
### Themed page-only app (no chat sidebar)
78
100
79
101
```yaml
80
102
- name: hide_nav_bar
@@ -83,6 +105,19 @@ Only override what differs from defaults.
83
105
value: "true"
84
106
- name: show_admin
85
107
value: "false"
108
+
- name: custom_css
109
+
value: "@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap'); body { font-family: 'Inter', sans-serif; }"
→ listen for 'authExpired' and 'error' events → redirect to login_path
161
+
```
162
+
163
+
If any step fails (config fetch, CDN import, missing `initWippyApp`), the page shows a styled error message with a Retry button. No external CSS is required for the loader/error UI.
164
+
165
+
## Web Host options not exposed by facade
166
+
167
+
The Web Host (`initWippyApp`) supports additional options that are intentionally not wired as facade requirements because they are advanced or context-specific:
0 commit comments