diff --git a/docs.json b/docs.json
index 994a8cc3a..74a746f6c 100644
--- a/docs.json
+++ b/docs.json
@@ -6160,6 +6160,7 @@
"v2.1.x-SNAPSHOT/how-to-guides/admin-guide/teams-and-users/add-team",
"v2.1.x-SNAPSHOT/how-to-guides/admin-guide/teams-and-users/invite-users",
"v2.1.x-SNAPSHOT/how-to-guides/admin-guide/teams-and-users/add-users",
+ "v2.1.x-SNAPSHOT/how-to-guides/admin-guide/teams-and-users/user-details",
"v2.1.x-SNAPSHOT/how-to-guides/admin-guide/teams-and-users/change-team-type"
]
},
@@ -6172,6 +6173,8 @@
"v2.1.x-SNAPSHOT/how-to-guides/admin-guide/roles-policies/use-cases"
]
},
+ "v2.1.x-SNAPSHOT/how-to-guides/admin-guide/profile/index",
+ "v2.1.x-SNAPSHOT/how-to-guides/admin-guide/applications/index",
"v2.1.x-SNAPSHOT/how-to-guides/admin-guide/cli-ingestion-with-basic-auth",
"v2.1.x-SNAPSHOT/how-to-guides/admin-guide/data-retention",
"v2.1.x-SNAPSHOT/how-to-guides/admin-guide/reindexing-search",
@@ -6180,6 +6183,7 @@
"pages": [
"v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/index",
"v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/theme-and-branding",
+ "v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/app-mode",
"v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/email",
"v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/login-configuration",
"v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/health-check",
diff --git a/public/images/how-to-guides/admin-guide/applications/app-detail-schedule.png b/public/images/how-to-guides/admin-guide/applications/app-detail-schedule.png
new file mode 100644
index 000000000..2f863373b
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/applications/app-detail-schedule.png differ
diff --git a/public/images/how-to-guides/admin-guide/applications/app-manage-menu.png b/public/images/how-to-guides/admin-guide/applications/app-manage-menu.png
new file mode 100644
index 000000000..5cc667fc1
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/applications/app-manage-menu.png differ
diff --git a/public/images/how-to-guides/admin-guide/applications/install-wizard-configure.png b/public/images/how-to-guides/admin-guide/applications/install-wizard-configure.png
new file mode 100644
index 000000000..f362e710d
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/applications/install-wizard-configure.png differ
diff --git a/public/images/how-to-guides/admin-guide/applications/install-wizard-details.png b/public/images/how-to-guides/admin-guide/applications/install-wizard-details.png
new file mode 100644
index 000000000..e2fb101e4
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/applications/install-wizard-details.png differ
diff --git a/public/images/how-to-guides/admin-guide/applications/install-wizard-schedule.png b/public/images/how-to-guides/admin-guide/applications/install-wizard-schedule.png
new file mode 100644
index 000000000..acb8dc4f1
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/applications/install-wizard-schedule.png differ
diff --git a/public/images/how-to-guides/admin-guide/applications/installed-list-show-disabled.png b/public/images/how-to-guides/admin-guide/applications/installed-list-show-disabled.png
new file mode 100644
index 000000000..ab21d3cf6
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/applications/installed-list-show-disabled.png differ
diff --git a/public/images/how-to-guides/admin-guide/applications/installed-list.png b/public/images/how-to-guides/admin-guide/applications/installed-list.png
new file mode 100644
index 000000000..21674c313
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/applications/installed-list.png differ
diff --git a/public/images/how-to-guides/admin-guide/applications/marketplace-app-page.png b/public/images/how-to-guides/admin-guide/applications/marketplace-app-page.png
new file mode 100644
index 000000000..920c78545
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/applications/marketplace-app-page.png differ
diff --git a/public/images/how-to-guides/admin-guide/custom-properties/custom-properties-add-team.png b/public/images/how-to-guides/admin-guide/custom-properties/custom-properties-add-team.png
new file mode 100644
index 000000000..3901aaceb
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/custom-properties/custom-properties-add-team.png differ
diff --git a/public/images/how-to-guides/admin-guide/custom-properties/custom-properties-add-user.png b/public/images/how-to-guides/admin-guide/custom-properties/custom-properties-add-user.png
new file mode 100644
index 000000000..43552b661
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/custom-properties/custom-properties-add-user.png differ
diff --git a/public/images/how-to-guides/admin-guide/custom-properties/custom-properties-teams.png b/public/images/how-to-guides/admin-guide/custom-properties/custom-properties-teams.png
new file mode 100644
index 000000000..9c51d2731
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/custom-properties/custom-properties-teams.png differ
diff --git a/public/images/how-to-guides/admin-guide/custom-properties/custom-properties-users.png b/public/images/how-to-guides/admin-guide/custom-properties/custom-properties-users.png
new file mode 100644
index 000000000..f555a4c8f
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/custom-properties/custom-properties-users.png differ
diff --git a/public/images/how-to-guides/admin-guide/custom-properties/team-custom-properties-rows.png b/public/images/how-to-guides/admin-guide/custom-properties/team-custom-properties-rows.png
new file mode 100644
index 000000000..aef28d1f5
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/custom-properties/team-custom-properties-rows.png differ
diff --git a/public/images/how-to-guides/admin-guide/custom-properties/user-custom-properties-empty.png b/public/images/how-to-guides/admin-guide/custom-properties/user-custom-properties-empty.png
new file mode 100644
index 000000000..a3fc73706
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/custom-properties/user-custom-properties-empty.png differ
diff --git a/public/images/how-to-guides/admin-guide/custom-properties/user-custom-properties-rows.png b/public/images/how-to-guides/admin-guide/custom-properties/user-custom-properties-rows.png
new file mode 100644
index 000000000..b5fdd5490
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/custom-properties/user-custom-properties-rows.png differ
diff --git a/public/images/how-to-guides/admin-guide/persona/persona-remove-default.png b/public/images/how-to-guides/admin-guide/persona/persona-remove-default.png
new file mode 100644
index 000000000..1fba8941d
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/persona/persona-remove-default.png differ
diff --git a/public/images/how-to-guides/admin-guide/preferences/classic-deprecation-hover-card.png b/public/images/how-to-guides/admin-guide/preferences/classic-deprecation-hover-card.png
new file mode 100644
index 000000000..a2607a082
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/preferences/classic-deprecation-hover-card.png differ
diff --git a/public/images/how-to-guides/admin-guide/preferences/default-app-mode-classic.png b/public/images/how-to-guides/admin-guide/preferences/default-app-mode-classic.png
new file mode 100644
index 000000000..e6c320283
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/preferences/default-app-mode-classic.png differ
diff --git a/public/images/how-to-guides/admin-guide/profile/appearance-submenu.png b/public/images/how-to-guides/admin-guide/profile/appearance-submenu.png
new file mode 100644
index 000000000..a07ce8e60
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/profile/appearance-submenu.png differ
diff --git a/public/images/how-to-guides/admin-guide/profile/domain-scope-collapsed-badge.png b/public/images/how-to-guides/admin-guide/profile/domain-scope-collapsed-badge.png
new file mode 100644
index 000000000..d3dff3693
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/profile/domain-scope-collapsed-badge.png differ
diff --git a/public/images/how-to-guides/admin-guide/profile/domain-scope-picker.png b/public/images/how-to-guides/admin-guide/profile/domain-scope-picker.png
new file mode 100644
index 000000000..8da8f3d84
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/profile/domain-scope-picker.png differ
diff --git a/public/images/how-to-guides/admin-guide/profile/preferences-rows.png b/public/images/how-to-guides/admin-guide/profile/preferences-rows.png
new file mode 100644
index 000000000..6cfbba1ae
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/profile/preferences-rows.png differ
diff --git a/public/images/how-to-guides/admin-guide/profile/profile-custom-properties.png b/public/images/how-to-guides/admin-guide/profile/profile-custom-properties.png
new file mode 100644
index 000000000..5e95506e9
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/profile/profile-custom-properties.png differ
diff --git a/public/images/how-to-guides/admin-guide/profile/profile-menu-open.png b/public/images/how-to-guides/admin-guide/profile/profile-menu-open.png
new file mode 100644
index 000000000..153eb6e41
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/profile/profile-menu-open.png differ
diff --git a/public/images/how-to-guides/admin-guide/profile/settings-modal-nav.png b/public/images/how-to-guides/admin-guide/profile/settings-modal-nav.png
new file mode 100644
index 000000000..ae62b0452
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/profile/settings-modal-nav.png differ
diff --git a/public/images/how-to-guides/admin-guide/profile/switch-persona-submenu.png b/public/images/how-to-guides/admin-guide/profile/switch-persona-submenu.png
new file mode 100644
index 000000000..4c9341750
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/profile/switch-persona-submenu.png differ
diff --git a/public/images/how-to-guides/admin-guide/teams-and-users/user-details-access.png b/public/images/how-to-guides/admin-guide/teams-and-users/user-details-access.png
new file mode 100644
index 000000000..884fe07c4
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/teams-and-users/user-details-access.png differ
diff --git a/public/images/how-to-guides/admin-guide/teams-and-users/user-details-overview.png b/public/images/how-to-guides/admin-guide/teams-and-users/user-details-overview.png
new file mode 100644
index 000000000..00474302c
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/teams-and-users/user-details-overview.png differ
diff --git a/public/images/how-to-guides/admin-guide/teams-and-users/user-details-tasks.png b/public/images/how-to-guides/admin-guide/teams-and-users/user-details-tasks.png
new file mode 100644
index 000000000..268d3c9bb
Binary files /dev/null and b/public/images/how-to-guides/admin-guide/teams-and-users/user-details-tasks.png differ
diff --git a/sitemap.xml b/sitemap.xml
index 39ec88a64..802926af1 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -3135,9 +3135,18 @@
https://docs.open-metadata.org/v2.1.x-SNAPSHOT/connectors/pipeline/tableau-pipeline/yaml
+
+ https://docs.open-metadata.org/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/applications
+
https://docs.open-metadata.org/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/data-retention
+
+ https://docs.open-metadata.org/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/app-mode
+
+
+ https://docs.open-metadata.org/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/profile
+
https://docs.open-metadata.org/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/sso
@@ -3165,6 +3174,9 @@
https://docs.open-metadata.org/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/sso/saml
+
+ https://docs.open-metadata.org/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/teams-and-users/user-details
+
https://docs.open-metadata.org/v2.1.x-SNAPSHOT/how-to-guides/context-center/ai-context
diff --git a/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/applications/index.mdx b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/applications/index.mdx
new file mode 100644
index 000000000..dcbb232d3
--- /dev/null
+++ b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/applications/index.mdx
@@ -0,0 +1,90 @@
+---
+title: Manage Applications
+description: "Install and manage OpenMetadata applications from Settings. Browse the marketplace, install an application, review its runs, and disable, restore, or uninstall it."
+sidebarTitle: Applications
+---
+
+# Manage Applications
+
+Admins install and manage OpenMetadata applications from **Settings** > **Applications**. Only admins see **Applications** and the marketplace.
+
+
+This page describes AI mode, where **Settings** opens as a modal. For more information, see [Profile Menu and Settings](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/profile).
+
+
+To open the page, click the **Profile** icon, select **Settings**, and then click **Applications** in the **Features** group.
+
+## Installed Applications
+
+The page lists your installed applications.
+
+- Turn on **Show Disabled** to list disabled applications instead. The heading changes from **Installed Applications** to **Disabled Applications**.
+- Click **Browse Apps** to open the **Marketplace**.
+
+
+
+
+
+## Install an Application
+
+1. Click **Browse Apps** and select an application. The application page shows an **Overview** and its **Details**.
+
+
+
+2. Click **Install**.
+3. Complete the wizard steps. The buttons in the footer change with each step:
+ - **Details**: Review the authorization screen, which lists what the application can access, such as **All Metadata**. The footer has **Cancel** and **Next**.
+ - **Configure**: Fill in the application settings. The footer has **Back** and **Next**.
+ - **Schedule**: Choose how the application runs. The footer has **Back** and **Install**.
+
+
+
+
+
+On the **Schedule** step, select one of the following:
+
+- **Schedule**: Runs the application repeatedly. Select a **Frequency**, then set the **Day** (for weekly runs) and the **Time**. The available frequencies depend on the application, for example **Hourly**, **Daily**, **Weekly**, **Monthly**, or **Custom**. A summary line shows when the next runs happen.
+- **On Demand**: Runs the application once, when you start it.
+
+
+
+OpenMetadata skips **Configure** when the application has no configuration form or does not allow configuration. If the configuration form fails to load, OpenMetadata shows "No application schema found for" followed by the application name.
+
+## Application Details
+
+Select an installed application to open its details.
+
+
+
+- **Header**: Shows **Installed** with a relative time, "Developed by" with the developer name, and **Visit developer website** when a website exists.
+- **Tabs**:
+ - **Schedule**: Set when the application runs. This tab is hidden for applications without a schedule.
+ - It shows the schedule type and interval, with **Edit** and **Run now** buttons.
+ - A table lists each run with its run time, type, who triggered it, duration, and status, and links to the logs and configuration.
+ - **Configuration**: Edit the application settings. It appears only for applications that have a configuration form and allow configuration. When none is available, the page shows **No Configuration**.
+ - **Recent Runs**: Review past runs.
+ - **Live Indexing**: Appears only for the Search Indexing application.
+- **Show Hint**: On the **Configuration** tab, turn on **Show Hint** to display field hints.
+
+## Disable, Restore, or Uninstall
+
+Use the three-dot menu in the application header.
+
+- **Disable**: Turns the application off. A disabled application moves to the **Disabled Applications** list.
+- **Restore**: Appears instead of **Disable** for a disabled application. It turns the application back on.
+- **Uninstall**: Removes the application. It is not offered for system applications.
+
+Each action asks you to confirm.
+
+
+
+An application with no schedule, configuration, or runs shows only the header and **No Configuration**.
+
+## Permissions
+
+Actions on an application depend on your permissions.
+
+- **Delete**: Shows the three-dot menu.
+- **EditAll**: Allows edits to the schedule and configuration.
+- **Trigger**: Allows **Run now**.
+- **Deploy**: Allows deploying the application.
diff --git a/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/persona-landing-page-customization/customizable-landing-page.mdx b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/persona-landing-page-customization/customizable-landing-page.mdx
index d920fc5d6..d317440cb 100644
--- a/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/persona-landing-page-customization/customizable-landing-page.mdx
+++ b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/persona-landing-page-customization/customizable-landing-page.mdx
@@ -35,7 +35,8 @@ After you change a setting, click **Save**. Click **Reset** to discard your chan
Use **App Mode** to choose the experience users of this persona see when they open the app and haven't picked an app mode themselves. A user's own app mode choice takes priority over the persona setting.
- **No default**: Uses the organization default.
-- **Classic**: Uses the standard catalog experience.
+- **Classic** (deprecated): Uses the standard catalog experience. For more information, see [Default App Mode](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/app-mode).
+- **AI**: Starts in the AI assistant.
### Default Landing Page
@@ -128,6 +129,18 @@ The following widgets are available:
For a **data scientist**, the KPIs widget may be removed, while prioritizing Yours and Followed and Team Activity.
A **data engineer** might add the Pipeline Status widget, while a **data steward** might include widgets focused on data governance, such as Domains and Data Products.
+## Full-Page Editor
+
+In AI mode, customizing the **Home Page** and the entity pages under **Governance** and **Data Assets** opens a full-page editor. The other categories open in the modal.
+
+- The breadcrumb starts at **Settings** > **Personas** and shows the persona and the page you are editing.
+- The header has **Add Widgets**, **Reset**, and **Save**, and a close icon to leave the editor.
+- If you exit with unsaved changes, an **Unsaved changes** prompt asks whether to save or discard them. Click **Save changes** or **Discard**. If you have no unsaved changes, you leave without a prompt.
+
+
+
+
+
## Customize Glossary Pages
The **Review** tab, where reviewers decide on glossary term proposals, is a customizable tab of the **Glossary** page. For a persona, rename, move, or hide it.
@@ -159,6 +172,8 @@ Users can switch between different personas without logging out or reconfiguring
### Setting a Default Persona:
Users can set a **default persona**, so the system displays the layout and settings relevant to that role every time they log in.
+Admins can also make a persona the organization default. Open the persona in **Settings** > **Personas** and click **Set as Default** in the page header. To undo it, click **Remove Default**. For more information, see [Manage a Persona](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/persona-landing-page-customization/defining-persona#manage-a-persona).
+
## Use Case Examples:
### 1. Data Engineer
diff --git a/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/persona-landing-page-customization/defining-persona.mdx b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/persona-landing-page-customization/defining-persona.mdx
index 2ae54d9eb..711041751 100644
--- a/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/persona-landing-page-customization/defining-persona.mdx
+++ b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/persona-landing-page-customization/defining-persona.mdx
@@ -31,3 +31,28 @@ In OpenMetadata, a **persona** represents an organization's specific role or fun
+
+## Manage a Persona
+
+Select a persona in **Settings** > **Personas** to open its detail page. Only admins see **Personas**. The page header and tabs offer the following actions.
+
+
+
+- **Copy URL**: Click the copy icon next to the title to copy a link to the persona. OpenMetadata confirms with "Link copied to clipboard".
+- **Rename**: Click the pencil icon to change the display name. This needs the EditDescription permission.
+- **Edit the description**: Edit the text under **Description**, and then save it.
+- **Set as Default** or **Remove Default**: Click the button in the header to make this persona the organization default, or to remove that status. This needs the EditAll permission.
+- **Delete**: Click the delete icon and confirm. This needs the EditAll or Delete permission.
+
+
+
+
+**Set as Default** is a button in the page header in AI mode. In Classic mode, open the **⋮** menu on the persona page and select **Set as Default** instead. Only one persona can be the default. Setting a new default removes the previous one for all users.
+
+
+### Users Tab
+
+The **Users** tab lists the users assigned to the persona, with their teams and roles.
+
+- Click **Add User**, select the users in the **Users** field, and click **Save**.
+- Use the remove action in a row to take a user out of the persona.
diff --git a/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/app-mode.mdx b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/app-mode.mdx
new file mode 100644
index 000000000..7a8fa8ef9
--- /dev/null
+++ b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/app-mode.mdx
@@ -0,0 +1,47 @@
+---
+title: Default App Mode
+description: Choose the default app experience, Classic or AI, that users land in until they pick one themselves, and learn that Classic mode is deprecated.
+sidebarTitle: Default App Mode
+---
+
+# Default App Mode
+
+OpenMetadata has two app experiences:
+
+- **Classic**
+- **AI**
+
+Each user can switch between them. **Default App Mode** sets the experience users land in until they have made that choice themselves.
+
+
+Classic mode is deprecated. It will be removed in an upcoming release, and AI mode will then be the only interface. Organizations and personas still set to **Classic** move to AI automatically. OpenMetadata has not announced a removal date.
+
+
+## How to Configure
+
+This setting requires Admin access.
+
+1. Navigate to **Settings** > **Preferences** > **Default App Mode**. In AI mode, open **Settings** from the profile menu and select **Platform Settings** > **Default App Mode**.
+2. Choose one of the following options:
+ - **No default**: OpenMetadata doesn't set an organization default.
+ - **Classic** (marked **Deprecated**): Users without a personal or persona-level mode land in the Classic experience. Under this option, OpenMetadata shows the hint "Classic mode retires in an upcoming release. Organizations and personas still set to Classic will move to AI automatically." A **Read the release notes** link follows the hint.
+ - **AI**: Users without a personal or persona-level mode land in the AI experience.
+3. Click **Save**.
+
+
+
+## Which Mode a User Lands In
+
+OpenMetadata uses the first of these that is set:
+
+1. **The user's own choice**: Saved for each user when they switch modes.
+2. **The persona's app mode**: Set for each persona. For more information, see [App Mode](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/persona-landing-page-customization/customizable-landing-page#app-mode).
+3. **This default**: The mode you set on this page.
+
+Because the user's own choice comes first, this default never forces a mode on anyone.
+
+## What Users See
+
+Users see **Deprecated** next to **Classic** in the interface switcher. Hovering over it shows a "Classic mode is being retired" card that explains the change and links to the release notes. The card says that after Classic is removed, AI mode will be the only interface, and that users can switch now and keep their settings.
+
+
diff --git a/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/index.mdx b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/index.mdx
index 6b5765f1c..df93b539d 100644
--- a/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/index.mdx
+++ b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/index.mdx
@@ -22,7 +22,7 @@ Navigate to **Settings** > **Preferences**.
-Every item under Preferences requires **Admin** access. Non-admin users don't see the Preferences menu at all, so if a teammate reports they can't find these settings, that's expected unless they've been made an admin.
+Every platform-wide item on this page requires **Admin** access. Non-admin users don't see these settings, so if a teammate reports they can't find them, that's expected unless they've been made an admin. Each user's personal **Preferences** under **Account** (Theme, Compact Sidebar, and Language) are separate and available to everyone.
## What's in Preferences
@@ -40,5 +40,6 @@ The table below lists every setting under Preferences, in the order it appears i
| **OpenMetadata URL** | Sets the base URL used to build links inside outgoing emails | Keeps every link in a notification email pointing at the right instance | [Email](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/email#openmetadata-url) |
| **Data Asset Rules** | Sets platform-wide metadata validation rules assets must satisfy | Enforces metadata quality standards across every asset automatically | [Data Asset Rules](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/data-asset-rules) |
| **Learning Resources** | Sets in-product learning content shown to end users | Surfaces onboarding material to new users without them having to go looking for it | [Learning Resources](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/learning-resources) |
+| **Default App Mode** | Sets whether users land in Classic or AI mode until they choose one | Controls the first experience new users see, and shows that Classic mode is deprecated | [Default App Mode](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/app-mode) |
Custom Logo and Theme aren't separate settings. They're two panels on the same **Theme** page in the product. For more information about customizing your logo, favicon, and color palette, see [Theme and Branding](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/theme-and-branding).
diff --git a/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/theme-and-branding.mdx b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/theme-and-branding.mdx
index cae4e40e0..5fe4bd9b1 100644
--- a/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/theme-and-branding.mdx
+++ b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/theme-and-branding.mdx
@@ -18,6 +18,10 @@ Theme and Custom Logo are organization-wide settings that require Admin access.
Changes here apply instantly for every user on the instance once they refresh the page.
+
+This page covers the organization-wide logo and colors that admins set. Each user also picks **Light**, **Dark**, or **System** for themselves in **Settings** > **Preferences** (under **Account**) > **Theme**. That choice applies in AI mode only. Classic mode always uses the light theme, and OpenMetadata keeps the choice for when the user returns to AI mode. For more information, see [Profile Menu and Settings](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/profile#your-preferences).
+
+
## How to Access
1. Navigate to **Settings** > **Preferences**.
diff --git a/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/profile/index.mdx b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/profile/index.mdx
new file mode 100644
index 000000000..0e488f3bc
--- /dev/null
+++ b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/profile/index.mdx
@@ -0,0 +1,126 @@
+---
+title: Profile Menu and Settings
+description: "Use the profile menu to set your domain scope, switch persona, change appearance, and open Settings, the modal where you manage your account and, as an admin, the platform."
+sidebarTitle: Profile and Settings
+---
+
+# Profile Menu and Settings
+
+In AI mode, the profile menu in the sidebar gives you quick access to your workspace context and to **Settings**. **Settings** opens as a modal over the page you are on, so you keep your place. In it you manage your account and, if you are an admin, administer the platform.
+
+
+This page describes AI mode. In Classic mode, **Settings** opens as a separate page. Classic mode is deprecated. For more information, see [Default App Mode](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/app-mode).
+
+
+## Profile Menu
+
+Click the **Profile** icon at the bottom of the sidebar to open the menu.
+
+
+
+The menu lists the following items:
+
+- **Your name and role**: Click it to open your **Profile** in **Settings**.
+- **Domain scope**: Limits what you see to a single domain. For more information, see [Domain Scope](#domain-scope).
+- **Active persona**: Shows your current persona, or **Default** if none is selected. Click it to open the **Switch Persona** submenu.
+- **My Data & Following**: Opens the assets you own and follow.
+- **Help**: Opens the help links.
+- **Language**: Shows the current language. Select another language to change it. The page reloads to apply it.
+- **Settings**: Opens the **Settings** modal.
+- **Appearance**: Switches between **Light** and **Dark**.
+- **Logout**: Signs you out.
+
+
+
+### Switch Persona
+
+Your persona tailors your home page and navigation. To switch persona, open the profile menu and click **Active persona**. In the **Switch Persona** submenu, a check mark shows the active persona. Select another persona to switch to it.
+
+
+
+For more information about personas, see [Persona and Landing Page Customization](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/persona-landing-page-customization).
+
+### Domain Scope
+
+Use **Domain scope** to work inside one domain at a time.
+
+
+
+- Select a domain to scope the platform to it. Select **All Domains** to remove the scope.
+- The page reloads after you pick a domain.
+- If you can access only one domain, **Domain scope** is disabled. Hover over it to see "You only have access to your assigned domain(s)."
+- With the sidebar expanded, the profile card shows a globe icon and the active domain name.
+- With the sidebar collapsed, a globe badge appears on your avatar only when a domain scope is active. Hover over the avatar to see your name and the active domain.
+
+
+
+## Settings Modal
+
+To open **Settings**, click the **Profile** icon and select **Settings**. The navigation panel on the left groups the sections as follows.
+
+
+
+| Group | Section | Where to find the details |
+|:--- |:--- |:--- |
+| **Account** | Profile | For more information, see [Profile Details](#profile-details). |
+| **Account** | Permissions | Shows the roles and policies that apply to you. For more information, see [Permission Debugger](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/permission-debugger). |
+| **Account** | Preferences | For more information, see [Your Preferences](#your-preferences). Admins set platform-wide options, such as **Default App Mode**, in [Preferences](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences). |
+| **Administration** | Access Control | For more information, see [Roles and Policies](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/roles-policies) and [Audit Logs](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/audit-logs). |
+| **Administration** | Bots | Manage bot accounts. |
+| **Administration** | Platform Settings | The platform-wide settings, such as email, lineage, and [Default App Mode](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/app-mode). |
+| **Administration** | Single Sign-On | For more information, see [Single Sign-On](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/sso). |
+| **Features** | Governance | Governance settings. |
+| **Features** | Applications | For more information, see [Applications](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/applications). |
+| **Features** | Notification | For more information, see [Alerts and Notifications](/v2.1.x-SNAPSHOT/how-to-guides/data-quality-observability/alerts-notifications/data-observability-alerts). |
+| **Workspace** | Personas | For more information, see [Define Personas](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/persona-landing-page-customization/defining-persona). |
+| **Workspace** | Members | For more information, see [Teams and Users](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/teams-and-users) and [User Details](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/teams-and-users/user-details). |
+| **Workspace** | Custom Properties | For more information, see [Create a Custom Property](/v2.1.x-SNAPSHOT/how-to-guides/guide-for-data-users/custom). |
+| **Credentials** | Access Token | Your personal access token. |
+
+
+Some sections depend on your role or permissions. If you don't see one, ask an OpenMetadata admin.
+
+- **Admin only**: Access Control, Bots, Platform Settings, Single Sign-On, Governance, Applications, and Personas.
+- **Permission based**: **Members** appears if you can view teams or users. The **Online Users** card on that page is admin only. **Custom Properties** needs view permission on the Type resource. **Notification** needs view permission on event subscriptions.
+
+
+### Settings Pages in AI Mode
+
+Some settings pages exist only in Classic mode. In AI mode, links to those settings open the modal at the matching section. The addresses that start with `/settings/`, `/marketplace/`, or `/bots/` are not served in AI mode and show a **Page Not Found** screen. To reach these pages, open the profile menu and select **Settings**.
+
+
+Settings pages that have no section in the modal, such as services, are not reachable in AI mode. Switch to Classic mode to use them.
+
+
+## Profile Details
+
+The **Profile** section shows your personal details.
+
+
+
+- **Profile**
+ - **Photo**: Your profile picture.
+ - **Preferred Name**: How your name appears across the platform. Click the pencil icon to edit it.
+ - **Description**: A short note about you. Click the pencil icon to edit it.
+ - **Email**: Used for sign-in and notifications. A **Verified** badge shows when OpenMetadata has verified it.
+- **Security**: **Change Password**. It appears only if you sign in with Basic authentication.
+- **Identity & Access**
+ - **Persona**: The personas assigned to your account.
+ - **Default Persona**: The persona that tailors the workspace to your role.
+ - **Domains**: The domains you belong to. Only an admin can change your domains.
+
+## Your Preferences
+
+The **Preferences** section controls how OpenMetadata looks on this device.
+
+- **Theme**: Select **Light**, **Dark**, or **System**. **System** follows your device setting. Your choice applies in AI mode only. Classic mode always uses the light theme, and OpenMetadata keeps your choice for when you return to AI mode.
+- **Compact Sidebar**: Turn on to use a compact navigation rail.
+- **Language**: Choose the language you want to use. The page reloads to apply it.
+
+
+
+
+**Appearance** in the profile menu switches between **Light** and **Dark** only. To follow your device setting, use **Theme** > **System** here.
+
+
+For more information about the organization-wide logo and colors that admins set, see [Theme and Branding](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/preferences/theme-and-branding).
diff --git a/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/sso.mdx b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/sso.mdx
index d83d2b893..2989611aa 100644
--- a/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/sso.mdx
+++ b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/sso.mdx
@@ -25,7 +25,7 @@ For more information, see [Recover Access During an SSO Outage](/v2.1.x-SNAPSHOT
-2. Click your identity provider tile, and then click **Configure**. The configuration page for that provider opens.
+2. Select your identity provider tile. The setup form for that provider opens directly.
3. Fill the configuration details. Each [provider guide](#provider-guides) lists the fields for that provider.
4. Run [Test Login](#test-login), and then click **Save**.
diff --git a/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/teams-and-users.mdx b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/teams-and-users.mdx
index 083ca94e8..cbc388c77 100644
--- a/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/teams-and-users.mdx
+++ b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/teams-and-users.mdx
@@ -20,4 +20,7 @@ OpenMetadata’s versatile hierarchical team structure helps align with your org
>
Advanced guide to know it all about roles and policies.
+
+ Review a user's profile, access, activity, tasks, and assets
+
\ No newline at end of file
diff --git a/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/teams-and-users/user-details.mdx b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/teams-and-users/user-details.mdx
new file mode 100644
index 000000000..7e02dc045
--- /dev/null
+++ b/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/teams-and-users/user-details.mdx
@@ -0,0 +1,104 @@
+---
+title: User Details
+description: "Open a user's details view in OpenMetadata to review their profile, access, activity, tasks, owned assets, followed assets, and custom properties."
+sidebarTitle: User Details
+---
+
+# User Details
+
+The user details view shows everything OpenMetadata knows about a single user in one place. Open it from **Settings** > **Members** > **Users** by selecting a user. The breadcrumb reads **Settings** > **Members** > **Users** > the user's name.
+
+
+
+## Header
+
+The header identifies the user and shows their status. It contains:
+
+- **Avatar and name**: The user's profile picture and display name.
+- **Badges**: **You** on your own profile, **Admin** for administrators, **Bot** for bot accounts, and **Deleted** for deleted users. Bots never show the **Admin** badge.
+- **Activity badge**: **Online now** or **Active recently** shows how recently the user was active. OpenMetadata hides the badge when the user has been inactive for more than an hour, and for bots.
+- **Username and email**: Shown as `@username` followed by the email address. OpenMetadata hides the email when it is masked.
+- **Delete icon**: Appears only if you have the **Delete** permission. For a deleted user, the icon is labeled **Delete permanently**.
+
+A deleted user shows a banner above the tabs with the deletion date and a **Restore User** button. The profile is read-only, but the user's activity, tasks, and owned assets stay visible for audit.
+
+## Tabs
+
+Tabs with items show a count badge. A count of zero is hidden.
+
+| Tab | What it shows | Who can see it |
+|:--- |:--- |:--- |
+| **Overview** | Profile details, **Security**, and identity details | Everyone who can open the user |
+| **Access** | The user's roles and access | Admins, and the user on their own profile |
+| **Activity** | The user's activity | Everyone who can open the user |
+| **Tasks** | The user's tasks | Everyone who can open the user |
+| **Owned Assets** | Assets the user owns | Everyone who can open the user |
+| **Following** | Assets the user follows | Everyone, except for bot users |
+| **Custom Properties** | Custom property values for the user | Users with view permission on custom properties |
+
+### Overview
+
+The **Overview** tab groups the user's details into sections. A pencil icon next to a value edits it, if you have permission.
+
+- **Profile**: **Photo**, **Preferred Name**, **Description**, and **Email**. The email shows a **Verified** badge when OpenMetadata has verified it.
+- **Security**: **Change Password**. For more information, see [Change a User's Password](#change-a-users-password).
+- **Identity & Access**: **Persona**, **Default Persona**, and **Domains**.
+
+### Access
+
+The **Access** tab shows how the user gets their permissions.
+
+- **Banner**: For an administrator, a banner explains that the Admin role bypasses policies, so the user can perform every operation.
+- **Membership**: **Teams**, **Roles**, and **Inherited Roles**.
+- **Permission Summary**: Cards for **Total Roles**, **Policies**, and **Teams**.
+- **Direct Roles**: The roles assigned directly to the user.
+
+
+
+### Tasks
+
+The **Tasks** tab lists the user's tasks. Select a task to open it as a full page. The breadcrumb ends with the task ID.
+
+- **All**, **Open**, and **Closed**: Switch between task states.
+- **Search tasks**: Find a task by name.
+- **Group**, **Status**, and **Type**: Group the list and filter by status or task type.
+
+
+
+### Owned Assets and Following
+
+These tabs list assets in the same card layout. Use the controls to narrow the list:
+
+- **Search assets**: Enter text to find an asset by name.
+- **Type**: Filter the list by asset type.
+
+When the user owns or follows nothing, the tab shows an empty message. A failed load shows an error instead of an empty list.
+
+### Custom Properties
+
+The tab lists one row for each custom property defined for users. For more information, see [Set a Value on a User](/v2.1.x-SNAPSHOT/how-to-guides/guide-for-data-users/custom#set-a-value-on-a-user).
+
+## Change a User's Password
+
+The **Security** section on the **Overview** tab includes a **Change Password** option. OpenMetadata offers it only when all of these conditions are true:
+
+- The user is active, not deleted, and not a bot.
+- The user signs in with Basic authentication.
+- You are viewing your own profile, or you are an admin.
+
+## Permissions
+
+What you can do in the user details view depends on your permissions:
+
+- **EditAll** on the user: Edit the display name, description, persona, and teams.
+- **Delete**: Delete the user.
+- **Admin only**: Assign roles, set the admin flag, and change a user's domains.
+
+Without view access to the user, OpenMetadata shows a permissions message instead of the details.
+
+## Error States
+
+These messages can appear when OpenMetadata can't load a user.
+
+- **No User found**: The user doesn't exist.
+- **Something went wrong**: OpenMetadata couldn't load the user. Select **Reload** to try again.
diff --git a/v2.1.x-SNAPSHOT/how-to-guides/guide-for-data-users/custom.mdx b/v2.1.x-SNAPSHOT/how-to-guides/guide-for-data-users/custom.mdx
index ee67d2154..b81de6222 100644
--- a/v2.1.x-SNAPSHOT/how-to-guides/guide-for-data-users/custom.mdx
+++ b/v2.1.x-SNAPSHOT/how-to-guides/guide-for-data-users/custom.mdx
@@ -47,7 +47,7 @@ To create a Custom Property:
-3. Click **Add Custom Property**.
+3. Click **Add Custom Property**. In AI mode, the button is in the modal header. In Classic mode, the button is labeled **Add Property**.
@@ -107,6 +107,62 @@ If the save fails, the window stays open and shows an error, so you don't lose w
You only see the add and edit controls if you have permission to edit the data asset. Other users can view the values but not change them.
+## Custom Properties for Teams and Users
+
+Custom properties aren't limited to data assets. Define them for **Teams** and **Users** as well, to capture details such as a cost center or an employee type.
+
+### Define the Property
+
+1. Click the **Profile** icon in the sidebar and select **Settings**. Then click **Custom Properties** in the **Workspace** group.
+2. Click the **Teams** or **Users** card. The page opens with the **Custom Properties** and **Schema** tabs, a **Search Properties** box, and a **Type** filter.
+3. Click **Add Custom Property** in the modal header and fill in the fields as described in [Create a Custom Property](#create-a-custom-property).
+
+
+
+
+
+ The **Users** page and form work the same way.
+
+
+
+
+
+### Set a Value on a Team
+
+Open the team from **Settings** > **Members** > **Teams**, and then click its **Custom Properties** tab.
+
+The tab lists one row for each property defined for teams. Each row shows:
+
+- **Type icon**: An icon for the property type.
+- **Name**: The property name with a badge for its type.
+- **Description**: What the property captures.
+- **Value**: The current value. Properties with no value show `--`.
+
+To find and order properties:
+
+- **Search Properties**: Enter a property name to filter the list.
+- **Sort**: Open the menu to sort by **Name** (the default), **Type**, or **With value first**.
+
+To set or change a value:
+
+1. Click the pencil icon on the row. The row expands to show the value editor. You see the pencil icon only if you have permission to edit.
+2. Enter the value.
+3. Click **Save changes**. The button stays disabled until the value changes. Click **Cancel** to discard your edit.
+
+
+
+### Set a Value on a User
+
+Open the user from **Settings** > **Members** > **Users**, and then click the **Custom Properties** tab. For more information about the user view, see [User Details](/v2.1.x-SNAPSHOT/how-to-guides/admin-guide/teams-and-users/user-details).
+
+The tab has the same rows, **Search Properties** box, and **Sort** menu as the team tab. Click the pencil icon on a row, enter the value, and click **Save changes**.
+
+
+
+If no custom properties are defined for users, the tab shows **No custom properties for users** and points you to **Custom Properties** in the **Workspace** group.
+
+
+
## Manage Custom Properties
You can edit or delete a custom property from the same page where you create it.
diff --git a/v2.1.x-SNAPSHOT/how-to-guides/mcp/connect.mdx b/v2.1.x-SNAPSHOT/how-to-guides/mcp/connect.mdx
index 48c66f351..cef3942f6 100644
--- a/v2.1.x-SNAPSHOT/how-to-guides/mcp/connect.mdx
+++ b/v2.1.x-SNAPSHOT/how-to-guides/mcp/connect.mdx
@@ -107,7 +107,7 @@ After receiving the `initialize` response, send this notification before making
}
```
-**Sample Response** (truncated — the server exposes 24 tools; see the [MCP Tools Reference](/v2.1.x-SNAPSHOT/how-to-guides/mcp/reference) for the complete list):
+**Sample Response** (truncated, because the server exposes 21 tools). For the complete list, see the [MCP Tools Reference](/v2.1.x-SNAPSHOT/how-to-guides/mcp/reference):
```json
{
diff --git a/v2.1.x-SNAPSHOT/how-to-guides/mcp/reference.mdx b/v2.1.x-SNAPSHOT/how-to-guides/mcp/reference.mdx
index 6f46b50ca..fb9b3f1bd 100644
--- a/v2.1.x-SNAPSHOT/how-to-guides/mcp/reference.mdx
+++ b/v2.1.x-SNAPSHOT/how-to-guides/mcp/reference.mdx
@@ -17,7 +17,7 @@ Tools are labeled **Read** (retrieve data only) or **Write** (create or modify d
|---|---|
| **Discover** | [search_metadata](#search_metadata), [semantic_search](#semantic_search), [company_context](#company_context) |
| **Inspect** | [get_entity_details](#get_entity_details) |
-| **Context** | [get_user_context](#get_user_context), [get_persona_context](#get_persona_context), [find_context](#find_context) |
+| **Context** | [get_user_context](#get_user_context), [get_persona_context](#get_persona_context), [find_context](#find_context), [get_concept_context](#get_concept_context) |
| **Lineage & Impact** | [get_entity_lineage](#get_entity_lineage), [create_lineage](#create_lineage), [root_cause_analysis](#root_cause_analysis) |
| **Create & Modify** | [create_entity](#create_entity), [describe_entity_type](#describe_entity_type), [patch_entity](#patch_entity) |
| **Data Quality** | [get_test_definitions](#get_test_definitions), [create_test_case](#create_test_case) |
@@ -465,7 +465,7 @@ Retrieve context knowledge associated with the current user, a persona, or a bus
**Type**: Read
-**Description**: For a business question where no specific asset has been chosen yet, semantically searches the company-knowledge layer — glossary term definitions, metric definitions, and Context Center articles — and returns the matching definitions plus the candidate data assets each concept points to (glossary terms → the tables tagged with them, metrics → the assets they apply to, and articles → the assets they're about). Use this to bootstrap a data question from business concepts into candidate tables, then call `get_entity_details` with `include: ["context"]` on those FQNs. This is a semantic search over company knowledge, not a keyword search over asset or persona memories.
+**Description**: For a business question where no specific asset has been chosen yet, semantically searches the company-knowledge layer — glossary term definitions, metric definitions, and Context Center articles — and returns the matching definitions plus the candidate data assets each concept points to (glossary terms → the tables tagged with them, metrics → the assets they apply to, and articles → the assets they're about). Use this to bootstrap a data question from business concepts into candidate tables, then call `get_entity_details` with `include: ["context"]` on those FQNs. For a glossary term or metric hit, call [`get_concept_context`](#get_concept_context) with its `entityType` and `fullyQualifiedName` (as `fqn`) to resolve its exact column bindings, profiles, and evidence. This is a semantic search over company knowledge, not a keyword search over asset or persona memories.
**Parameters**
@@ -492,6 +492,47 @@ Retrieve context knowledge associated with the current user, a persona, or a bus
}
```
+### get_concept_context
+
+**Type**: Read
+
+**Description**: Resolve a glossary term or metric to everything the catalog knows about it: its definition, typed ontology attributes, the assets and columns it is tagged on or applied to, profiles and sample values for those columns, related metrics, and the saved queries that use it. Pass the concept's `fullyQualifiedName` from [`find_context`](#find_context) as `fqn`. It returns the same result as `GET /v1/glossaryTerms/name/{fqn}/context` and `GET /v1/metrics/name/{fqn}/context`.
+
+Profiles and sample values follow the caller's permissions. Profiles need **ViewDataProfile**, sample values need **ViewSampleData**, and sensitive values stay masked.
+
+**Parameters**
+
+| Parameter | Type | Required | Description |
+|-----------|------|----------|-------------|
+| `entityType` | string | Yes | `glossaryTerm` or `metric` |
+| `fqn` | string | Yes | Fully qualified name of the glossary term or metric |
+| `format` | string | No | `markdown` (default) or `json` |
+| `query` | string | No | A question used to choose which excerpts of attached articles and memories to include |
+
+**Limits**
+
+- Bindings cover at most 10 visible assets and 25 bindings per asset.
+- `totalAssets`, `totalBindings`, and `truncated` report what was left out. Counting stops after 500 candidate assets, so totals are lower bounds when `truncated` is `true`.
+- Up to 20 saved-query evidence entries are returned, with query text cut at 4,000 characters.
+- Attached articles and memories share the same size budget as the other context tools.
+
+**Example**
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "tools/call",
+ "params": {
+ "name": "get_concept_context",
+ "arguments": {
+ "entityType": "glossaryTerm",
+ "fqn": "Finance.Revenue"
+ }
+ }
+}
+```
+
## Lineage & Impact
Explore data dependencies, trace upstream sources, and analyze downstream impact.
@@ -910,10 +951,10 @@ Results from these tools are **not filtered by asset or domain policies**. If yo
|---|---|---|---|
| `query` | string | Yes | The SPARQL query. Use `https://open-metadata.org/ontology/` as the `om:` prefix |
| `format` | string | No | `SELECT`/`ASK`: `json` (default), `xml`, `csv`, `tsv`. `CONSTRUCT`/`DESCRIBE`: `turtle`, `jsonld`, `ntriples`, `rdfxml` |
-| `inferenceLevel` | string | No | Reasoning applied at query time: `none` (default), `rdfs`, `owl`, `custom` |
+| `inferenceLevel` | string | No | Reasoning applied at query time: `none` (default), or `custom` when materialized inference is enabled. `rdfs` and `owl` fail with a 503 error |
| `maxBytes` | integer | No | Response body cap. Default and maximum 80000; minimum 1024 |
-A `truncated: true` flag plus `byteCount` appears when the body does not fit — narrow the query with `LIMIT` rather than raising `maxBytes`, which is clamped. A `warning` field appears when the requested `inferenceLevel` could not be applied because the graph was too large; **results are then not inferred**.
+A `truncated: true` flag plus `byteCount` appears when the body does not fit — narrow the query with `LIMIT` rather than raising `maxBytes`, which is clamped. An `rdfs` or `owl` request fails instead of returning un-inferred results, and so does `custom` when materialized inference is off.
**Example**
diff --git a/v2.1.x-SNAPSHOT/how-to-guides/ontology/knowledge-graph/reasoning.mdx b/v2.1.x-SNAPSHOT/how-to-guides/ontology/knowledge-graph/reasoning.mdx
index e713daf2c..291e66731 100644
--- a/v2.1.x-SNAPSHOT/how-to-guides/ontology/knowledge-graph/reasoning.mdx
+++ b/v2.1.x-SNAPSHOT/how-to-guides/ontology/knowledge-graph/reasoning.mdx
@@ -10,28 +10,36 @@ A knowledge graph earns its keep when it can tell you things nobody explicitly w
## Inference Levels
-Every SPARQL query can request a reasoning level:
+Every SPARQL query can request a reasoning level. Two levels work:
| Level | What it derives |
|---|---|
-| `NONE` | Nothing. Only asserted triples. The default. |
-| `RDFS` | RDFS entailment — subclass and subproperty closure, domain/range typing. |
-| `OWL_LITE` / `OWL_DL` | OWL entailment at the corresponding profile: inverse properties, transitivity, symmetry, equivalence. |
-| `CUSTOM` | OpenMetadata's own rule set — transitive lineage traversal, tag propagation, domain inheritance. |
+| `none` | Nothing. Only asserted triples. The default. |
+| `custom` | The triples written by your [materialized inference rules](#materialized-inference-rules), such as transitive lineage traversal, tag propagation, and domain inheritance. Available only when `RDF_MATERIALIZED_INFERENCE_ENABLED=true` on a Fuseki triple store. |
-Configure the default with `RDF_DEFAULT_INFERENCE_LEVEL`, and enable inference at all with `RDF_INFERENCE_ENABLED`. Callers can override per query (`inference=` on the REST endpoint, `inferenceLevel` on the MCP tool).
+Callers choose the level per query (`inference=` on the REST endpoint, `inferenceLevel` on the MCP tool). `GET /api/v1/rdf/status` reports the default level (`NONE`) and which levels are available.
-`GET /api/v1/rdf/status` reports which levels are available and what the default is.
+
+
+**`rdfs` and `owl` are no longer supported.** OpenMetadata 2.1 removed the reasoner that ran inside the server process. A query that asks for `rdfs`, `owl`, `owl_lite`, or `owl_dl` fails with `503 Service Unavailable`. The error message lists the levels that work. `custom` also returns 503 when materialized inference is not enabled. Remove these levels from saved queries, scripts, and agent prompts.
+
+
+
+### How Inference Works
-### Two Execution Strategies
+Inference comes only from **materialized inference**. Each rule runs as a SPARQL `CONSTRUCT` inside the triple store and writes its results to a durable named graph, one per rule. Queries read those materialized triples directly, so the server never loads the graph into memory.
-**In-process inference** builds a Jena inference model over the dataset in memory at query time. Accurate for any level, but bounded: if the store exceeds `RDF_MAX_IN_MEMORY_INFERENCE_TRIPLES` (default 100,000), the query silently falls back to direct execution **without** inference and returns a `warning` field saying so. Enable `cacheInferredTriples` to reuse bounded in-memory models for 60 seconds.
+To use inference, set `RDF_MATERIALIZED_INFERENCE_ENABLED=true` and request `custom`. The rule graphs are part of the triple store's default graph, so a `custom` query runs unchanged and sees both asserted and inferred triples.
-**Materialized inference** (`RDF_MATERIALIZED_INFERENCE_ENABLED=true`) runs each rule as a SPARQL `CONSTRUCT` inside the triple store and writes the results to a durable named graph, one per rule. Queries then read materialized triples with no in-memory model at all.
+
+
+The settings `RDF_INFERENCE_ENABLED`, `RDF_DEFAULT_INFERENCE_LEVEL`, `RDF_MAX_IN_MEMORY_INFERENCE_TRIPLES`, and `RDF_CACHE_INFERRED_TRIPLES` are deprecated. The server ignores them and logs a warning at startup if `RDF_INFERENCE_ENABLED` or `RDF_CACHE_INFERRED_TRIPLES` is set. You can remove them from your configuration.
+
+
-**Use materialized inference for anything past a small catalog.** In-process inference does not scale past the triple limit, and a silent fallback that returns un-inferred results is worse than no inference at all — you get an answer that looks right and is incomplete. Materialization has the opposite failure mode: staleness, which is visible as a `dirty` flag.
+**Staleness is the trade-off.** Materialized triples are only as fresh as the last rule run. A stale rule shows a `dirty` flag, so you can tell when an answer may be out of date.
@@ -202,7 +210,7 @@ Agents call the same thing through the `shacl_validate` MCP tool, which addition
## OWL Profile Guardrails
-`RDF_STRICT_OWL_PROFILE=true` (the default) makes OpenMetadata reject authored axioms outside the supported OWL 2 DL profile. This is not pedantry: OWL Full is undecidable, and a reasoner over an undecidable ontology can run forever. The guardrail is what keeps `OWL_DL` inference a bounded operation.
+`RDF_STRICT_OWL_PROFILE=true` (the default) makes OpenMetadata reject authored axioms outside the supported OWL 2 DL profile. The OWL 2 DL profile keeps authored ontologies decidable, while OWL Full is undecidable. That is why the guardrail is on by default.
## Next