mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-06 02:48:13 -05:00
[PR #21727] feat(confluence): add Confluence knowledge upload integration #26244
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/open-webui/open-webui/pull/21727
Author: @christestet
Created: 2/22/2026
Status: 🔄 Open
Base:
dev← Head:feat/confluence-integration📝 Commits (6)
1acc452feat: add Confluence knowledge upload integration550ea02refactor: align Confluence integration with Open WebUI settings patterns99f5eb6feat(confluence): split admin endpoint config from user credentialseae045cfix(confluence): fix bugs and add i18n translations53becf8feat(confluence): add hierarchical tree view for page selection83d607bfix datacenter import and connection error, optimize imports, drop user and password support for confluence ds📊 Changes
71 files changed (+5534 additions, -9 deletions)
View changed files
📝
backend/open_webui/config.py(+21 -0)📝
backend/open_webui/main.py(+17 -0)➕
backend/open_webui/retrieval/loaders/confluence.py(+321 -0)📝
backend/open_webui/routers/retrieval.py(+299 -1)📝
src/lib/apis/retrieval/index.ts(+157 -0)📝
src/lib/components/admin/Settings/Documents.svelte(+59 -0)📝
src/lib/components/chat/Settings/Account.svelte(+130 -0)➕
src/lib/components/icons/Confluence.svelte(+14 -0)📝
src/lib/components/workspace/Knowledge/KnowledgeBase.svelte(+36 -0)📝
src/lib/components/workspace/Knowledge/KnowledgeBase/AddContentMenu.svelte(+16 -0)➕
src/lib/components/workspace/Knowledge/KnowledgeBase/ConfluenceImportModal.svelte(+981 -0)📝
src/lib/i18n/locales/ar-BH/translation.json(+66 -0)📝
src/lib/i18n/locales/ar/translation.json(+66 -0)📝
src/lib/i18n/locales/bg-BG/translation.json(+58 -0)📝
src/lib/i18n/locales/bn-BD/translation.json(+58 -0)📝
src/lib/i18n/locales/bo-TB/translation.json(+56 -0)📝
src/lib/i18n/locales/bs-BA/translation.json(+60 -0)📝
src/lib/i18n/locales/ca-ES/translation.json(+60 -0)📝
src/lib/i18n/locales/ceb-PH/translation.json(+58 -0)📝
src/lib/i18n/locales/cs-CZ/translation.json(+62 -0)...and 51 more files
📄 Description
Pull Request Checklist
devbranch.requests(already a core Open WebUI dependency) to call the Confluence REST API directly.upstream/dev. 5 atomic commits, no unrelated changes.feat— introduces a new integration feature.Changelog Entry
Description
Adds a Confluence knowledge upload integration that allows users to import pages from Atlassian Confluence directly into Open WebUI knowledge bases. Admins configure the Confluence server endpoint; users authenticate with their own API token on each request. Pages are selected via a hierarchical space/page tree and imported as vectorized documents for RAG.
Added
backend/open_webui/retrieval/loaders/confluence.py): Fetches pages from Confluence Cloud and Data Center using the Confluence REST API directly viarequests. Strips HTML to plain text, splits into chunks. No new package dependency —requestsis already a core Open WebUI dependency.Documentssettings page): Admins can configure the Confluence base URL and deployment type. Supports both Confluence Cloud (https://<domain>.atlassian.net) and self-hosted Confluence Data Center.Accountsettings page): Each user provides their own Confluence email + API token (Cloud) or username + PAT/password (Data Center) when using the import modal. Credentials are submitted per-request and are not persisted server-side./retrievalrouter):POST /retrieval/confluence/test— test connection with provided credentialsPOST /retrieval/confluence/spaces— list spaces the user has access toPOST /retrieval/confluence/spaces/{space_key}/pages— list pages in a space (hierarchical)POST /retrieval/confluence/import— import selected pages into a knowledge baseENABLE_CONFLUENCE_INTEGRATION,CONFLUENCE_BASE_URL,CONFLUENCE_DEPLOYMENT_TYPE) is handled via the existingGET /retrieval/config/POST /retrieval/config/updateendpoints.ConfluenceImportModal.svelte: Full import UI with space browser, hierarchical page tree with checkboxes, progress feedback, and error handling.AddContentMenu: "Import from Confluence" entry added to the knowledge base content menu.Confluence.svelteicon: SVG icon component for the Confluence logo.en-US(and stub entries for all other locales).Changed
backend/open_webui/config.py: AddedCONFLUENCE_*config variables (ENABLE_CONFLUENCE_INTEGRATION,CONFLUENCE_BASE_URL,CONFLUENCE_DEPLOYMENT_TYPE).backend/open_webui/routers/retrieval.py: Added Confluence endpoints and config fields to the existing retrieval router and config model.src/lib/stores/index.ts: Added Confluence config to the app state store.src/lib/apis/retrieval/index.ts: Added typed API client functions for all Confluence endpoints.Fixed
Security
Breaking Changes
Additional Information
Why this is useful for Open WebUI:
Many organizations use Confluence as their primary internal knowledge base. This integration makes it trivial to turn Confluence content into RAG-ready knowledge without manual export/import workflows.
Architecture decisions:
requestsdirectly against the Confluence REST API — no additional package dependency.How to test (manual):
Screenshots or Videos
(Screenshots available on request — the modal shows a space selector, a hierarchical page tree with checkboxes, and a progress bar during import.)
Contributor License Agreement
By submitting this pull request, I confirm that I have read and fully agree to the Contributor License Agreement (CLA), and I am providing my contributions under its terms.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.