Knowledge Base

The Knowledge Base is a browser-based documentation area built into the server: a place to publish installation notes, operating procedures, partner onboarding guides, or any other reference material your file-transfer users need — next to the files they exchange, protected by the same accounts and groups. Moderators author rich pages organized in a topic tree; readers browse and search exactly the topics their groups are entitled to see.

Edition: the Knowledge Base is an Enterprise Edition feature.

Enabling the Knowledge Base

On Enterprise installations the Knowledge Base is enabled by default. It can be switched off with the <knowledge> block in admin-console.xml:

<knowledge>
    <enabled>false</enabled>
</knowledge>

The application is served from the admin console's web server at:

http://<server>:<admin-port>/knowledge/

Disabling takes effect immediately — no restart is required. While disabled, the Knowledge URL shows an informational page and all Knowledge API requests are refused.

Users, Sign-In, and Roles

Knowledge users are the server's regular SFTP accounts — the same identities that sign into SFTP and the Web File Transfer Portal. Two group capability flags control what a signed-in user can do:

Capability Grants Where it applies
access_knowledge Reader access: browse and search published pages in topics the user's groups have been granted. Any group in any organization.
manage_knowledge Moderator access: create, edit, publish, and delete topics and pages; manage topic visibility; see drafts; view history and revert. Moderators implicitly see every topic. Effective only on groups in the hosting organization. The flag is ignored on customer-organization groups.

Sign-in supports the same multi-factor authentication as the portal: if the account has MFA enrolled, the login prompts for the authenticator code. The Knowledge session is independent of portal and admin-console sessions — signing out of one does not sign you out of the others.

Single sign-on to the portal: a signed-in Knowledge user who follows a link to a portal file does not need to log into the portal separately. The server admits the same identity automatically, and the user's own folder permissions decide whether the file is served.

Reading

The reader view has three parts: the Index tree on the left, the article area in the middle, and a breadcrumb trail under the header showing where you are (Home › topic › page — every ancestor is clickable). The tree refreshes each time a branch is expanded, so newly published content appears without a page reload.

Topic Visibility and Publishing

Two independent gates decide what a reader sees:

Gate Behavior
Group visibility Each topic carries a list of groups that may see it, edited from either editor's “topic … is visible to the following groups” panel. A grant covers the topic and every descendant topic and page beneath it. Ancestors of a granted topic remain navigable so readers can reach their content, but expose none of their own pages. A topic with no grants is visible only to moderators.
Publish state Pages start life as drafts, visible only to moderators (marked “Draft, this page is not visible until published”). Readers see a page only after a moderator publishes it. Drafts are also excluded from reader search results.
Pages inherit topic visibility. There are no per-page group grants — granting a group on a topic entitles it to all published pages in that topic and its sub-topics.

Segregating Content by Organization

Because grants are given to groups, and groups belong to organizations (see Organizations, Groups, and Virtual Folders), the visibility model doubles as a multi-tenant content wall: each customer organization can be given its own documentation area that no other organization can see — or even discover.

A typical layout for a provider hosting two trading partners:

Topic Granted to Visible to
General — Getting Started Acme / All Users and Globex / All Users Everyone in both organizations.
Acme Onboarding Acme / All Users Acme readers only. Globex users do not see the topic in the tree, cannot open its pages, and its content never appears in their search results.
Globex Onboarding Globex / All Users Globex readers only.
Internal Runbooks (no grants) Moderators only — an ungranted topic is invisible to all readers, which makes it a safe default for work in progress.

The enforcement is server-side and applies uniformly to the topic tree, page reads, search results, and attachment downloads — a reader outside the granted groups cannot reach the content by guessing addresses. The grant picker lists groups by their organization and display name (Organization / Group), so cross-tenant mistakes are easy to spot at a glance.

Pattern: create one top-level topic per customer organization and grant it to that organization's groups; keep shared material under a common topic granted to every reader group. Moderators (hosting-organization staff) always see the whole tree, so they maintain all areas from one place.

Authoring

Moderators see an author toolbar on the Index tree with four buttons that act on the current tree selection:

ButtonAction
New Drop-down: Topic creates a topic under the selected topic (or at the top level when Home is selected); Page creates a page in the selected topic and opens the editor immediately.
Edit Opens the page editor for a selected page, or the topic editor (title, description, content ordering, visibility) for a selected topic. With Home selected it opens an order-only editor for the top-level topics.
Rename Changes the title of the selected topic or page.
Delete Deletes the selected page, or the selected topic including everything beneath it (with confirmation).

Ordering Topics and Pages

The topic editor contains two ordering lists — Order of topics and Order of pages. Drag entries into position, or select one and use Move up / Move down; Save applies the order everywhere the topic's contents appear: the Index tree, the topic view, and the Home page. Topics and pages are ordered independently because the Knowledge Base always groups topics before pages. To order the top-level topics, select Home in the Index tree and click Edit. Topics and pages that have never been ordered are listed after the ordered ones, alphabetically.

The Page Editor

The editor fills the content area (the Index tree stays visible) with the page title in the caption bar and Save, Publish, and Close at the right end of the toolbar. Save stores the page and keeps editing; Publish stores and makes the page visible to readers; Close returns to the article. The Save button is enabled only while there are unsaved changes, and every way of leaving a modified page — including navigation and sign-out — prompts with Save / Discard / Cancel so work is never silently lost.

Text and Headings

The Style drop-down applies paragraph styles (Normal, Heading 1–3) to the current block, Word-style, and follows the caret so it always shows the style you are in. The remaining toolbar controls cover fonts, size, colors, alignment, lists, and hyperlinks, plus a source-editing view for direct HTML work.

Code Snippets

Insert code snippet… in the paperclip menu opens the code snippet dialog: choose a language (Java, XML/HTML, JavaScript, JSON, SQL, Shell, PowerShell, Python, C#, CSS, YAML, or plain text) and paste the code. Published pages render snippets with syntax coloring; double-click a snippet in the editor to modify it.

The same dialog offers Mermaid Diagram (under Diagrams): write a diagram as Mermaid text — flowcharts, sequence diagrams, entity-relationship diagrams — and readers see it rendered as a real diagram. The editor shows the editable text source; the diagram is drawn fresh on every view, so the stored page stays plain, diffable text. Diagram text that fails to parse is shown as-is with an error note rather than disappearing.

Tables

The table button inserts a table by sweeping a row×column matrix, or via From CSV — upload a CSV file, choose its dialect (separator, line endings, encoding, string marker, first-line header), and the data becomes a table with a proper header row.

While the caret is inside a table, a floating toolbar appears beside it:

Columns and rows also resize directly with the mouse: drag a column or row boundary, drag the table's right or bottom edge to scale all columns or rows proportionally, or drag the bottom-right corner to scale both at once. Borderless tables show faint guide lines while editing so they stay visible; readers never see the guides.

Pictures, Attachments, and File Links

The paperclip menu offers several ways to bring files and media into a page:

Menu itemBehavior
Upload picture Uploads an image as a page attachment and places it at the caret. Click a placed image to select it; drag the corner handles to resize (proportional).
Upload attachment Uploads any file as a page attachment and inserts a text hyperlink at the caret, so downloads sit exactly where the prose needs them.
Insert link to file on server Browses your portal filesystem — home directory plus shared virtual folders — and links a file that stays on the server. Readers who click it are admitted through single sign-on and their own folder permissions decide access.
Insert YouTube video Paste a YouTube URL (or a bare video ID) and the player is embedded in the page. Only the YouTube player can be embedded this way; the privacy-enhanced player host is used, so no tracking cookies are set for readers who never press play.
Insert video Embeds a video player for an .mp4 or .mpg file by URL — an external address or a server file link. The player always shows controls and never autoplays.
Link files from shared virtual folders. Server file paths are resolved per user, so a link is stable for every reader only when the file lives in a shared virtual folder mounted for the reader groups. Links into a personal home directory work only for that one user.

Attachment limits: 20 MB per file and 200 MB total per page by default. Uploads are restricted to a safe allow-list of content types (images, video, PDF, text, archives, Office documents, and a general binary fallback); HTML and SVG uploads are rejected because browsers would execute scripts inside them. File names are normalized to portable form automatically.

Diagrams

Insert diagram… in the paperclip menu opens the embedded draw.io editor — the full diagramming application with shapes, connectors, and stencil libraries — over the page. Saving exports the diagram into the page as an ordinary image that every reader sees, with the editable diagram source embedded inside the same file. To change a diagram later, select it and click the open button (or double-click it): draw.io reopens the original, fully editable, and saving replaces the image in place.

Version History

Every save of a page creates a new version — nothing is ever overwritten. In the page editor, expand the History panel on the right to see the page's versions (time, author, message). Clicking a version opens the compare view, which takes over the full width of the screen:

Connecting AI Assistants (MCP)

The Knowledge Base includes a built-in MCP server (Model Context Protocol) at /knowledge/mcp, so AI assistants such as Claude Code and Claude Desktop can search, read, and — for moderators — author content. Every connection acts as a real user account: the assistant sees exactly what that user's organization and groups are allowed to see, nothing more, and every action lands in the audit trail under that user's name. Changes an assistant saves are additionally marked generated by AI agent in the page's version history, so the History panel always shows which revisions came from an AI.

The AI Integration page in the Web Admin (and the matching desktop Admin Console tab) holds the master enable switch, ready-to-copy client registration commands, and API token management. The CLI equivalents are get-ai-integration / set-ai-integration. When AI integration is disabled, MCP clients receive a clear "disabled by an administrator" refusal; tokens and configuration are preserved for when it is re-enabled.

API Tokens

MCP clients authenticate with a personal access token sent as Authorization: Bearer <token>. Administrators create tokens in any admin surface — Web Admin (Knowledge page), the desktop Admin Console (Knowledge tab), or the CLI (token-create / token-list / token-revoke). Each token:

Use TLS. Bearer tokens travel in a request header; expose the MCP endpoint over HTTPS. For read-only integrations, mint the token for a dedicated low-privilege reader account.

Browser Sign-In (OAuth)

Alternatively, register the server without a token and the client uses the built-in OAuth 2.1 flow: it discovers the server's authorization endpoints automatically, registers itself, and opens a browser page where the user signs in with their own SFTP credentials (MFA included) and approves the access — no token to copy or store. Access is short-lived and refreshed automatically; approvals appear in the token list (kind OAuth) and can be revoked there, which cuts off the client immediately. PKCE is mandatory, refresh tokens rotate on every use, and reuse of a rotated token revokes the whole grant.

Client Setup

The quickest path is to let the console generate the connection file for you. On the Web Admin AI Integration tab, use the download menu to save a ready-made config for your client: mcp.json for Claude Code / Claude Desktop, .vscode/mcp.json for Visual Studio Code with GitHub Copilot, or the Open WebUI tool-server import file. These files carry the endpoint URL but no token — the client completes browser sign-in (OAuth) on first use. Drop the file in the client's config location and connect. If you prefer to configure a client by hand, the equivalents are below.

Claude Code (either style):

# With a personal access token:
claude mcp add --transport http knowledge https://your-server:9980/knowledge/mcp \
    --header "Authorization: Bearer <token>"

# Or with browser sign-in (OAuth) — no token needed:
claude mcp add --transport http knowledge https://your-server:9980/knowledge/mcp

Claude Desktop: Settings → Connectors → Add custom connector and paste the endpoint URL. Desktop signs in through the browser OAuth flow — there is no field for a token header, so serve the endpoint over HTTPS and let OAuth handle it. Other MCP clients configure the endpoint as an HTTP server with either an Authorization: Bearer header or their OAuth support.

The assistant then has typed tools: search_knowledge, list_topics, read_page, and with a write-scope token create_topic, update_topic, create_page, update_page, publish_page, upload_image (attach an AI-generated image and embed it in the page), and list_server_files / find_server_files — bounded, names-only discovery of the token user's portal filesystem so the assistant can insert links to files on the server (readers' clicks are still governed by their own folder permissions; prefer shared virtual folders). Assistants can also author Mermaid diagrams, code snippets, tables, YouTube embeds, and video links — the tools describe the exact supported markup. Topic and page arguments accept the human titles you see in the reader — "create a topic 'GateKeeper Installation' under Home" works as spoken; slugs are never required. Anything an assistant writes is created as a draft and stays invisible to readers until a person (or an explicit publish call) publishes it — and every change is git-versioned, so the History panel shows exactly what the assistant did.

Blocking AI Access to a Page

Some pages hold material that must never reach an AI assistant — customer-private data, contract detail, anything your policy keeps out of third-party services. Any page can be marked blocked for AI agents: open it in the editor and click the AI: Allowed button in the toolbar. It turns red and reads AI: Blocked, and readers see an AI access blocked badge beside the page title so everyone knows why an assistant cannot discuss that page. The setting applies immediately — it does not wait for you to save or publish.

Blocking covers every route an assistant could take to the content, not just the obvious one:

Enforcement is by credential type, decided on the server: a request that authenticates with an API token or OAuth — what assistants use — is treated as an agent on every URL, not only the MCP tools. A person signed in with a browser session is unaffected and reads the page normally. This matters because assistants can call the ordinary REST endpoints directly (that is how they upload images), so guarding only the MCP tools would leave a side door open. The rule lives in the server's authentication layer, so no instruction given to an assistant can talk it out of the block.

Only people can change the setting: the toggle endpoint refuses token-authenticated requests, so an assistant can never unblock a page for itself, and ordinary page saves cannot alter the flag. Every change is written to the audit trail as KNOWLEDGE_AI_BLOCK_ENABLED or KNOWLEDGE_AI_BLOCK_DISABLED with the operator's name, and the block survives reverting a page to an earlier version.

What this protects against. The block reliably stops anything the server can identify as an assistant: MCP clients and any token-authenticated automation. It cannot recognise an AI tool that drives a person's own browser using that person's login — to the server such a request is the person. Governing which AI browser tools are permitted on machines with Knowledge Base access is an endpoint policy decision, not something a server-side setting can decide. Blocked pages are additionally served with X-Robots-Tag: noai, noindex and are refused to self-identifying crawlers (ClaudeBot, GPTBot, and similar), which well-behaved tools honour.

Branding

The Knowledge Base honors the same white-label branding as the file portal — product name, logo, colors, fonts, and favicon are read from a single branding.xml, so one change re-brands both surfaces at once. White-label branding is an Enterprise-edition feature; for the file layout and configuration, see White-label Branding in the Web File Transfer Portal chapter.

Operational Notes