Skip to content
Merged

0.12.1 #1465

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
30c0014
Add a guide for the Milvus hybrid search migration
Classic298 Oct 11, 2026
220a1f8
Explain what Top K and Top K Reranker actually control
Classic298 Oct 11, 2026
b551c25
Remove the Pipelines section from the docs
Classic298 Oct 11, 2026
0d43b3e
Move the Langfuse tutorial to a Filter Function
Classic298 Oct 11, 2026
e14ed9d
Merge branch 'main' into dev
Classic298 Oct 11, 2026
19d7a85
Document the Tool Search backend requirement
Classic298 Oct 12, 2026
381ee7c
Name the backends that Tool Search does not work on
Classic298 Oct 12, 2026
30dc817
Name the backends Tool Search was tested to work on
Classic298 Oct 12, 2026
c384a47
Show the new 0.12.0 team features in the docs
Classic298 Oct 12, 2026
1b314f1
Merge branch 'main' into dev
Classic298 Oct 12, 2026
ee9b999
Merge branch 'main' into dev
Classic298 Oct 12, 2026
94cf636
Document the admin-facing changes in 0.12.1
Classic298 Oct 13, 2026
7159347
Document Apps for channels
Classic298 Oct 13, 2026
defca3a
Merge branch 'main' into dev
Classic298 Oct 13, 2026
bb2a746
docs: metadata files is None when no files are sent
Classic298 Oct 13, 2026
1066d3e
Document the 0.12.1 skill tool and chat changes
Classic298 Oct 14, 2026
f2f335f
Show who wrote in shared folder chats and the folder preview
Classic298 Oct 14, 2026
5173f5e
Update the Apps docs for delivery receipts and the new scope editor
Classic298 Oct 14, 2026
eb85904
Document the 0.12.1 channel, skill and compare features
Classic298 Oct 14, 2026
12d8cdb
Voice Mode prompt applies to Realtime calls too
Classic298 Oct 14, 2026
01adb6a
Explain sign-in records for SCIM users
Classic298 Oct 14, 2026
8e6fd67
Document Realtime voice calls on Azure OpenAI
Classic298 Oct 14, 2026
00a8eb4
Apply the 0.12.1 docs audit fixes
Classic298 Oct 14, 2026
ea08465
Correct community sharing and update advice in the hardening guide
Classic298 Oct 14, 2026
31e3154
Say what the gesture tool does during Realtime calls
Classic298 Oct 14, 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
22 changes: 15 additions & 7 deletions docs/features/administration/analytics/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -118,18 +118,24 @@ This chart helps you:

### Model Usage Table

Model usage and user activity share one table below the chart. The **Models** / **Users** switch above it picks which list it shows, and **Models** is shown first.

A detailed breakdown of how each model is being used:

| Column | Description |
|--------|-------------|
| **#** | Rank by message count |
| **#** | Rank in the current sort order |
| **Model** | Model name with icon |
| **Messages** | Total assistant responses generated |
| **Tokens** | Total tokens (input + output) consumed |
| **Users** | Distinct users |
| **Chats** | Distinct chats |
| **Input** | Input tokens |
| **Output** | Output tokens |
| **Total** | Input and output tokens together |
| **%** | Percentage share of total messages |

**Features:**
- **Sortable columns** - Click any column header to sort. The table also has **Users** (distinct users) and **Chats** (distinct chats) columns
- **Sortable columns** - Click any column header to sort, each of the three token columns included
- **Model icons** - Visual identification with profile images
- **Token tracking** - See which models consume the most resources
- **Clickable rows** - Click any model to open the [Model Details Modal](#model-details-modal)
Expand Down Expand Up @@ -178,17 +184,19 @@ This is useful for:

### User Activity Table

Track user engagement and token consumption per user:
Pick **Users** in the switch above the table to track user engagement and token consumption per user:

| Column | Description |
|--------|-------------|
| **#** | Rank by activity |
| **#** | Rank in the current sort order |
| **User** | Username with profile picture |
| **Messages** | Total messages sent by this user |
| **Tokens** | Total tokens consumed by this user |
| **Input** | Input tokens of this user |
| **Output** | Output tokens of this user |
| **Total** | Input and output tokens together |

**Features:**
- **Sortable columns** - Sort by name, messages or tokens. The table shows the 50 users with the most messages in the period. The API's `limit` parameter raises that
- **Sortable columns** - Sort by name, messages or any of the three token columns. The table shows the 50 users with the most messages in the period. The API's `limit` parameter raises that
- **User identification** - Profile pictures and display names
- **Token attribution** - See resource consumption per user

Expand Down
2 changes: 1 addition & 1 deletion docs/features/administration/task-models.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ title: "Task Models"

# Task Models

Open WebUI makes small model calls in the background, separately from the answer a user is waiting for. They write chat titles, generate tags, suggest follow-up questions, produce autocomplete ghost text, rewrite a message into a retrieval or web search query, rewrite a message into an image prompt and summarize older messages when [context compaction](/troubleshooting/context-window#the-built-in-option-context-compaction) is on.
Open WebUI makes small model calls in the background, separately from the answer a user is waiting for. They write chat titles, generate tags, suggest follow-up messages, produce autocomplete ghost text, rewrite a message into a retrieval or web search query, rewrite a message into an image prompt and summarize older messages when [context compaction](/troubleshooting/context-window#the-built-in-option-context-compaction) is on.

By default all of that runs on the model the user is chatting with. On an expensive flagship model it is a bill nobody planned for, and on a slow local model it makes the whole interface feel sluggish. Pointing background work at a small, fast model is the highest-value change an administrator can make here.

Expand Down
2 changes: 2 additions & 0 deletions docs/features/administration/translations.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,8 @@ A few rules are enforced when you save, and a save that breaks one is refused wi
- The same original text cannot appear in two rows.
- `__proto__`, `prototype` and `constructor` are refused as a language or an original string.

**Delete** on a row removes only the replacement for the language picked in the selector, and its tooltip names that language. Replacements in other languages stay, and the row disappears once none is left.

Your own session updates the moment you save. Everyone else picks the change up the next time their browser loads Open WebUI.

### Setting it through the API
Expand Down
20 changes: 10 additions & 10 deletions docs/features/administration/webhooks.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ title: "Webhook Integrations"

## Overview

Open WebUI offers three distinct webhook integrations to help you stay informed about events happening within your instance and enable external integrations. These webhooks allow you to receive automated notifications in external services like Discord, Slack, or any other application that supports incoming webhooks, as well as post messages from external services into Open WebUI channels.
Open WebUI offers three distinct webhook integrations to help you stay informed about events happening within your instance and enable external integrations. These webhooks allow you to receive automated notifications in external services like Discord, Slack or any other application that supports incoming webhooks, as well as post messages from external services into Open WebUI channels.

There are three types of webhooks available:

Expand Down Expand Up @@ -64,15 +64,15 @@ This webhook lets individual users be notified when something they care about ha

Each user configures one or more **notification targets** in **Settings > Notifications**, and chooses per target which events it receives and whether it fires only while they are away or always. The model can also send a notification itself through the `notify` tool.

See **[Notifications](/features/chat-conversations/chat-features/notifications)** for the full feature: targets, the five subscribable events, delivery modes, URL masking, and the `notify` tool.
See **[Notifications](/features/chat-conversations/chat-features/notifications)** for the full feature: targets, the five subscribable events, delivery modes, URL masking and the `notify` tool.

### Use Case

- **Long-Running Task Alerts:** If you submit a complex prompt that takes several minutes to process, you can close the browser tab and still be notified the moment the response is ready. This allows you to work on other tasks without having to constantly check the Open WebUI interface.

### How it Works

With the default **away** delivery, a notification is only sent if you are **not actively using the WebUI**, so you are not pinged about something you are already watching. Setting a target to **always** sends regardless. Channel messages are always delivered, since they come from someone else.
With the default **away** delivery, a notification is only sent if you are **not actively using the WebUI**, so you are not pinged about something you are already watching. Setting a target to **always** sends regardless. Channel messages ignore the delivery mode, in group channels and direct messages too, and are sent only while you have no Open WebUI tab open. They are sent for messages that people post, bot accounts posting over the API included. In a standard channel they reach you once you have opened or posted in that channel. A channel set to [**Mentions only**](/features/channels#muting-a-channel) sends only the messages that @mention you.

### Enabling/Disabling User Webhooks

Expand Down Expand Up @@ -102,13 +102,13 @@ The single **Notification Webhook** field under **Settings > Account** has been

## 3. Channel Webhooks: External Message Integration

Channel Webhooks allow external services, automation tools, or scripts to post messages directly into Open WebUI channels. This enables seamless integration with monitoring systems, CI/CD pipelines, notification services, or any custom automation.
Channel Webhooks let external services, automation tools or scripts post messages directly into Open WebUI channels, for example from monitoring systems, CI/CD pipelines, notification services or any custom automation. A webhook posts messages into one channel. A service that should also answer `@mentions` or post buttons is built as an [App](/features/channels/apps).

### Use Cases

- **System Monitoring:** Post alerts from monitoring tools (Prometheus, Grafana, Nagios) directly into team channels.
- **CI/CD Integration:** Send build status notifications from GitHub Actions, GitLab CI, or Jenkins to development channels.
- **Custom Automation:** Integrate with n8n, Zapier, or custom scripts to automate message posting.
- **CI/CD Integration:** Send build status notifications from GitHub Actions, GitLab CI or Jenkins to development channels.
- **Custom Automation:** Integrate with n8n, Zapier or custom scripts to automate message posting.
- **External Notifications:** Forward notifications from external services into your Open WebUI workspace.

### How it Works
Expand All @@ -119,23 +119,23 @@ Each channel can have multiple webhooks. Each webhook has:
- An optional **profile image** to visually identify the webhook source
- A **last used timestamp** to track webhook activity

Messages posted via webhooks appear in the channel with the webhook's identity, making it clear they came from an external source rather than a user.
Messages posted via webhooks appear in the channel with the webhook's name and image, which marks them as coming from an external source.

### Managing Channel Webhooks

Only **channel managers** and **administrators** can create and manage webhooks for a channel.
Only the channel's creator and **administrators** can create and manage webhooks for a channel.

#### Creating a Webhook

1. Navigate to the channel where you want to add a webhook.
2. Click the channel menu (⋮) and select **Edit Channel**.
2. In the sidebar, open the channel's **...** menu and select **Edit channel**.
3. In the channel settings modal, locate the **Webhooks** section.
4. Click **Manage** to open the Webhooks modal.
5. Click **New Webhook**. This creates a live webhook named "New Webhook" at once. **Save** only applies later name and image edits.
6. Configure the webhook:
- **Name:** The display name that will appear as the message author
- **Profile Image:** (Optional) Upload an image to represent this webhook
7. Click **Save** to create the webhook.
7. Click **Save** to apply the name and image.
8. Copy the generated webhook URL using the **Copy URL** button.

#### Webhook URL Format
Expand Down
13 changes: 12 additions & 1 deletion docs/features/authentication-access/auth/scim.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ Open WebUI's SCIM implementation supports the following operations:
- **Create User** (`POST /Users`): Create a new user account
- **Get User** (`GET /Users/{id}`): Retrieve user information
- **Update User** (`PUT /Users/{id}`, `PATCH /Users/{id}`): Update user attributes
- **Delete User** (`DELETE /Users/{id}`): Deactivate a user account
- **Delete User** (`DELETE /Users/{id}`): Delete the user account with its chats and its sign-in record
- **List Users** (`GET /Users`): List externally provisioned users, with filtering support

#### PATCH operations
Expand Down Expand Up @@ -189,6 +189,9 @@ If `SCIM_AUTH_PROVIDER` is not set while SCIM is enabled, any operation that req
4. **500 Error on externalId Operations**
- Verify that `SCIM_AUTH_PROVIDER` is set to the correct OAuth provider name

5. **SCIM Users Get `401` on SSO Sign-In**
- On v0.12.0, update to v0.12.1 or later, see [Sign-in records for SCIM users](#integration-with-sso)

### Testing SCIM Endpoints

You can test SCIM endpoints using curl:
Expand Down Expand Up @@ -246,4 +249,12 @@ SCIM works best when combined with SSO (Single Sign-On). A typical setup include

This ensures users are automatically created and can immediately authenticate using their corporate credentials.

:::info Sign-in records for SCIM users

Every account SCIM creates gets a sign-in record with a random password that nobody knows, so the user signs in through SSO. An admin can give the user a password as well by editing the user under **Admin Panel > Users**. When SCIM changes a user's email, the sign-in email changes with it.

Before v0.12.1, SCIM created accounts without a sign-in record. v0.12.0 started checking that record on SSO sign-in, so SCIM users got `401` `Invalid authentication request.` when they signed in. Updating to v0.12.1 fixes this for existing accounts too: a database migration adds the missing record on startup, with an empty password that never matches, and the users sign in through SSO again with nothing to change on the identity provider. Back up before updating, see [Before You Update](/getting-started/updating#before-you-update).

:::

For SSO configuration, see the [SSO documentation](https://docs.openwebui.com/features/authentication-access/auth/sso/).
2 changes: 1 addition & 1 deletion docs/features/calendar/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@ The default is **10 minutes before**.
2. **Browser notification**: if browser notifications are enabled in user settings, a native OS notification is shown.
3. **Webhook**: if the user has a webhook URL configured in **Settings > Notifications**, a `calendar_alert` payload is sent.

Alerts are de-duplicated server-side via `meta.alerted_at`, so each event fires at most once per start time, even across restarts and multi-instance deployments.
Alerts are de-duplicated server-side via `meta.alerted_at`, so each event fires at most once per start time, even across restarts and multi-instance deployments. Moving an event to a new start time arms its alert again.

The global alert polling window is configurable via [`CALENDAR_ALERT_LOOKAHEAD_MINUTES`](/reference/env-configuration#calendar_alert_lookahead_minutes) (default: 10 minutes).

Expand Down
Loading
Loading