Skip to content
Open

Dev #1251

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
edc4a1f
0.9.6
Classic298 May 13, 2026
7b6550e
Merge branch 'open-webui:dev' into dev
Classic298 May 13, 2026
8eef020
0.9.6
Classic298 May 14, 2026
cc25fcb
Merge branch 'open-webui:dev' into dev
Classic298 May 14, 2026
bb6f6dc
sqlite
Classic298 May 15, 2026
ddc2dbb
Merge branch 'dev' into dev
Classic298 May 19, 2026
64dacfa
0.9.6 docs pass
Classic298 May 19, 2026
553b5ee
Merge remote-tracking branch 'upstream/dev' into dev
Classic298 May 19, 2026
4ce8a97
Merge branch 'dev' of https://github.com/Classic298/docs into dev
Classic298 May 19, 2026
c0ed6e7
Update knowledge.md
Classic298 May 19, 2026
5eb2d3a
Document file_handler opt-in for custom RAG in filters
Classic298 May 20, 2026
8b8f26f
plugins
Classic298 May 26, 2026
e1a8ebc
fix
Classic298 May 26, 2026
d342b50
python compat
Classic298 May 27, 2026
868fce7
clarify window.args injection requirements
Classic298 May 27, 2026
1fa8bab
external tool events: no credential forwarding, use admin key
Classic298 May 27, 2026
1128ccb
swap default/recommended columns
Classic298 May 27, 2026
06e5977
Update banners.md
Classic298 May 28, 2026
20f82c6
explain where payload-request data comes from
Classic298 May 28, 2026
93f1352
add which-extension-do-i-need decision guide + pipe/pipeline disambig…
Classic298 May 28, 2026
251e200
tools taxonomy: external tool servers, workspace tools power, open te…
Classic298 May 28, 2026
8921d63
mark Pipelines legacy across all pipelines pages; drop from decision …
Classic298 May 28, 2026
45db3e3
pipelines legacy warning: reference both pipe and filter replacements
Classic298 May 28, 2026
c2b6095
extensibility index: async backend makes pipelines-for-heavy-work obs…
Classic298 May 28, 2026
2d7b43e
mcp: document MCP servers are admin-only by design (vs per-user OpenAPI)
Classic298 May 28, 2026
eb0e9e8
Update scaling.md
Classic298 May 29, 2026
b3574bd
Update env-configuration.mdx
Classic298 May 29, 2026
551810d
Update performance.md
Classic298 May 29, 2026
82201a4
Update redis.md
Classic298 May 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 94 additions & 1 deletion docs/features/administration/banners.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,84 @@ Inline styles are supported on allowed tags:
<span style="background: linear-gradient(90deg,#e0f2fe,#fef9c3);">Gradient background</span>
```

> Keep styling minimal. Overly large padding, font sizes, or complex layouts can cause banners to become tall or visually inconsistent across themes.
You can also style a full message area by wrapping the content in a block element:

```html
<div style="background:#f8fafc;border:1px solid #cbd5e1;border-radius:12px;padding:10px 14px;line-height:1.3;display:block;width:100%;box-sizing:border-box;">
<b>Notice title</b><br>
Short supporting message.
</div>
```

> Keep styling purposeful. Large padding, large font sizes, or deeply nested layouts can make banners too tall and visually inconsistent across themes.

---

## Designing effective banners

Banners work best when they are easy to scan, visually distinct, and short enough not to interrupt normal work.

### Structure the message

Use a predictable structure:

- Start with the event type or status: `Maintenance`, `Incident`, `Policy update`, `New feature`.
- Put the most important detail first: date, time, impact, or required action.
- Keep the body to one or two short sentences.
- Add one link only if users need more details.

For longer notices, use short sections instead of one long paragraph. For multilingual notices, separate languages with a subtle `<hr>` or use a collapsible `<details>` section.

### Make severity visible

Use the banner `type` consistently:

- `info`: neutral announcements and product updates.
- `success`: resolved incidents or completed changes.
- `warning`: planned maintenance, degraded service, or upcoming action needed.
- `error`: active incidents or urgent action required.

Avoid using `error` for non-urgent announcements. Users learn to ignore alerts when every message looks critical.

### Use color carefully

Color should support the banner type, not compete with it:

- Use soft backgrounds for the full message area.
- Use stronger colors for small accents, labels, or left borders.
- Keep text contrast high enough to read in bright rooms and on dim screens.
- Avoid mixing many unrelated colors in one banner.

A useful pattern is a pale background plus a stronger left border:

```html
<div style="background:#f8fafc;color:#334155;border:1px solid #cbd5e1;border-left:6px solid #64748b;border-radius:12px;padding:10px 14px;line-height:1.3;display:block;width:100%;box-sizing:border-box;">
<b>Notice title</b><br>
Short supporting message.
</div>
```

### Keep layouts responsive

Banners are shown inside the application layout and must still work on narrow screens.

- Prefer `display:flex;flex-wrap:wrap` for rows containing labels, dates, or badges.
- Avoid fixed widths.
- Use `width:100%;box-sizing:border-box` for full-width styled blocks.
- Keep icons and badges small so they do not increase banner height.
- Test the banner with a narrow browser window before using it broadly.

### Avoid accidental extra height

Banner content treats literal newlines as line breaks. If you use explicit `<br>` tags, keep the raw HTML compact and avoid adding extra blank lines or indentation in the banner content field.

This compact style:

```html
<b>Notice</b><br>One short sentence.<br>Another short sentence.
```

renders more predictably than heavily formatted HTML with many line breaks.

---

Expand Down Expand Up @@ -255,6 +332,22 @@ Service updates: <a href="https://example.com/status" target="_blank"><u>Status
</span>
```

### Pattern: Styled notice block

Use a full-width styled block when the whole message should read as one announcement area. Keep this HTML compact when pasting it into the banner content field, especially if it also contains `<br>` tags.

```html
<div style="background:#f8fafc;color:#334155;border:1px solid #cbd5e1;border-left:6px solid #64748b;border-radius:12px;padding:10px 14px;line-height:1.3;display:block;width:100%;box-sizing:border-box;"><div style="display:flex;flex-wrap:wrap;align-items:center;gap:5px 8px;margin-bottom:5px;"><span style="display:inline-flex;align-items:center;background:#64748b;color:#fff;padding:1px 7px;border-radius:999px;line-height:1.25;font-size:10px;font-weight:700;letter-spacing:.04em;">NOTICE</span><b>Notice title</b><span style="display:inline-flex;align-items:center;background:#fff;color:#334155;padding:1px 8px;border-radius:999px;line-height:1.25;border:1px solid #cbd5e1;">Key detail</span></div><div>Short supporting message.</div></div>
```

This pattern uses:

- A pale background for the full message area.
- A stronger left border for fast visual recognition.
- A small uppercase label for the event type.
- A compact date/time chip for the most important metadata.
- `flex-wrap` so the header row still works on narrow screens.

### Pattern: Collapsible details (keep banners short)

```html
Expand Down
15 changes: 15 additions & 0 deletions docs/features/authentication-access/rbac/groups.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,18 @@ For example, granting the "Marketing" group read access and a specific editor us

* **Read**: Users can view and use the resource.
* **Write**: Users can update or delete the resource.

### Previewing Access (Audit)

When access grants span many groups and resources, it's easy to lose track of who can see what. Open WebUI ships an admin-only **Preview Access** view that resolves every access grant for a specific user or group and lists the result in one place — no need to crawl through individual resource pages.

**For a user** — In **Admin Panel > Users**, hover over a non-admin user row and click the eye-style **Preview Access** button. The modal shows every model, knowledge base, and tool the user can read, aggregated across all of their group memberships and any direct user grants.

**For a group** — In **Admin Panel > Users > Groups**, open the group editor and use the **Preview Group Access** panel. The output is the same shape (models, knowledge, tools), scoped to just that group's grants.

Both views are admin-only and read-only — they reflect what the access-grant table currently says without modifying it. Use them after a permission change to confirm the result matches intent, or as part of a periodic RBAC audit.

Programmatic equivalents:

- `GET /api/v1/users/{user_id}/preview` — user view (admin auth required)
- `GET /api/v1/groups/id/{id}/preview` — group view (admin auth required)
5 changes: 5 additions & 0 deletions docs/features/channels/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,14 @@ Mentioning a model in a channel runs through the same chat-completion pipeline a
| **User tools and MCP tools** | Whatever the model is configured to call, it can call |
| **Filters** | Inlet/outlet/stream filters apply just like in chats |
| **Knowledge (RAG)** | Knowledge bases attached to the model are queried and injected |
| **Attached documents** | Images **and** non-image files (PDF, DOCX, etc.) uploaded in the thread are forwarded into the model's context |

In other words, a channel-summoned model is a fully-equipped agent — not a one-shot completion.

:::note Document attachments in channels (v0.9.6+)
Before v0.9.6, tagging a model in a channel only forwarded **images** from the thread — uploaded PDFs, DOCX, and other non-image documents were ignored, so summarization and document-comparison prompts silently had nothing to work with. As of v0.9.6 these files are forwarded the same way they are in a direct chat, so document workflows behave identically in channels.
:::

### Tagging people and linking channels

Use `@username` to notify teammates. Use `#channel-name` to create clickable cross-references between conversations.
Expand Down
93 changes: 93 additions & 0 deletions docs/features/chat-conversations/web-search/providers/linkup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
---
sidebar_position: 23
title: "Linkup"
---

:::warning

This tutorial is a community contribution and is not supported by the Open WebUI team. It serves only as a demonstration on how to customize Open WebUI for your specific use case. Want to contribute? Check out the [contributing tutorial](https://docs.openwebui.com/contributing).

:::

:::tip

For a comprehensive list of all environment variables related to Web Search (including concurrency settings, result counts, and more), please refer to the [Environment Configuration documentation](/reference/env-configuration#web-search).

:::

:::tip Troubleshooting

Having issues with web search? Check out the [Web Search Troubleshooting Guide](/troubleshooting/web-search) for solutions to common problems like proxy configuration, connection timeouts, and empty content.

:::

## Overview

[Linkup](https://www.linkup.so/) is a search API built for AI applications. Integrating it with Open WebUI lets your language model perform real-time web searches and ground responses in current sources. This tutorial guides you through configuring Linkup as a web search provider.

Linkup support was added in Open WebUI v0.9.6.

## Prerequisites

Ensure you have:

- **Open WebUI Installed**: A running instance of Open WebUI (local or Docker). See the [Getting Started guide](https://docs.openwebui.com/getting-started).
- **Linkup Account**: An account with an API key from [Linkup](https://www.linkup.so/).
- **Admin Access**: Administrative access to your Open WebUI instance.
- **Internet Connection**: Required for Linkup API requests.

## Step-by-Step Configuration

### 1. Obtain a Linkup API Key

1. Log in or sign up at [Linkup](https://www.linkup.so/).
2. Open the API keys section of your dashboard.
3. Copy or generate a new API key. Keep it secure.

### 2. Configure Open WebUI

1. Log in to Open WebUI with an admin account.
2. Open **Admin Panel → Settings → Web Search**.
3. Enable **Web Search** by toggling it **On**.
4. Select **linkup** from the **Web Search Engine** dropdown.
5. Paste your Linkup API key into the **Linkup API Key** field.
6. (Optional) Set the **Search Depth** and **Output Type** (see below).
7. Save your settings.

### 3. Test the Integration

1. Start a chat session in Open WebUI.
2. Click the **plus (+)** button in the prompt field to enable web search.
3. Enter a query (e.g., `+latest AI news`) and confirm Linkup returns real-time results.

## Search Parameters

Linkup requests are built from a small set of defaults that you can override. The query (`q`) and result count (`maxResults`) are injected automatically and cannot be overridden.

| Parameter | Default | Notes |
|-----------|---------|-------|
| `depth` | `standard` | `standard` is faster and cheaper; `deep` runs a more thorough multi-step search. |
| `outputType` | `sourcedAnswer` | `sourcedAnswer` returns an answer plus its source pages; `searchResults` returns raw result entries. |
| `url` | `https://api.linkup.so/v1/search` | Override only if you need to point at a different endpoint. |

These map to the [`LINKUP_SEARCH_PARAMS`](/reference/env-configuration#linkup_search_params) environment variable, supplied as a JSON object. For example:

```bash
-e LINKUP_API_KEY="your_linkup_api_key"
-e LINKUP_SEARCH_PARAMS='{"depth": "deep", "outputType": "searchResults"}'
```

The same fields are exposed in the Admin UI when the `linkup` engine is selected, so you do not need environment variables unless you prefer to manage configuration that way. See [Environment Variable Configuration](https://docs.openwebui.com/environment) for details and the [`ENABLE_PERSISTENT_CONFIG`](/reference/env-configuration#enable_persistent_config) behavior.

## Troubleshooting

- **Invalid API Key**: Ensure the key is copied correctly, without extra spaces.
- **No Results**: Confirm the web search toggle (`+`) is enabled and your internet is active. Try `depth: deep` for sparse topics.
- **Quota Exceeded**: Check your plan and usage on the Linkup dashboard.
- **Settings Not Saved**: Verify admin privileges and that `webui.db` is writable.

## Additional Resources

- [Linkup Documentation](https://docs.linkup.so/): API reference and advanced options.
- [Open WebUI Features](https://docs.openwebui.com/features): Details on RAG and web search.
- [Contributing to Open WebUI](https://docs.openwebui.com/contributing): Share improvements or report issues.
Loading