Capabilities
@nocobase/app-plugin-knowledge provides spaces, folders, Markdown articles, files, versions, search and change proposals. Basic knowledge management requires neither Agents nor semantic indexing.
Basic knowledge management is independent of Agents and semantic indexing; the application defines space ownership and access.
Scenarios and examples
Example: review team knowledge changes
- Configure a team space and read, propose and edit permissions.
- A member proposes an article update; an editor reviews its diff and base version.
- Accept or reject it; acceptance creates a new version.
- Verify history, search and isolation from unauthorized users.
knowledge.proposals: false disables proposal workflows while preserving historical records. Direct editing retains its permission checks. Actors acting for users cannot directly edit or decide proposals.
Development prompt (for a Coding Agent working in the application directory):
Use Knowledge to add team spaces and document-change review. Bind a
KnowledgeAccessResolver for team-visible spaces and read/propose/edit/manage
access. Reuse its page or views for member proposals and editor review against
the base version. Start with text search, without assuming semantic models or OCR.
Test team isolation, edit conflicts, accepted proposals and parsing failures.Done whenMembers can propose changes, acceptance creates a version, and other teams cannot read the content through pages or search.
Key principles and implementation
These are the integration areas and expected interface changes for this example. They describe development work; use the actual file layout of your application.
| Integration area | Code or configuration change | UI and behavior change |
|---|---|---|
| Server access resolver | Bind knowledgeAccessToken and resolve space/node access | Users see authorized team spaces |
| Client routes or business page | Register the page or embed KnowledgeView | Add documents, folders, versions and proposals |
| Optional index config and Jobs | Compose indexing and its management grants separately | Add semantic search without removing basic text search |
Spaces and permissions
Register both runtimes and apply migrations. Bind a KnowledgeAccessResolver through knowledgeAccessToken from /server/tokens, defining valid spaces, inheritance and reader access. Without a resolver, no spaces are available.
Spaces use scope and scopeId. The application enumerates authorized spaces rather than exposing an unfiltered database list.
| Level | Capability |
|---|---|
read | Read permitted documents and files |
propose | Submit changes for review |
edit | Edit content and decide eligible proposals |
manage | Manage space and node permissions |
Nodes can inherit access or use custom permissions. Page access does not grant access to every space.
Pages and content
knowledge() registers /knowledge by default and accepts path and space. For embedded business views, use knowledge({ routes: false }) and compose KnowledgePage or KnowledgeView from /client/pages.
Users can maintain folders and Markdown, inspect versions and restore content. Updates carry an expected version; resolve conflicts against the latest content.
Uploads additionally need Files and Drive. Supported files have text extracted and expose parsing status. There is no OCR, so images and scanned documents do not necessarily produce searchable text.
Search and semantic indexing
Basic search matches current document and extracted text. Semantic search is optional. Knowledge owns its global index; Agents can supply an Embedding gateway, without sharing Agents vector collections.
Compose defineKnowledgeConfig() from /config, configure index instances, model access and host Jobs, then integrate indexing controls. Administration uses independent settings:kb.indexing permissions, not space management alone. Text search remains available while indexing is unavailable or rebuilding.
Verify isolation, version conflicts, parsing failures, proposal review and search boundaries. Related: Agents, Files, Manage plugins.
AI development constraints and verification
Plugin-specific development constraints
- Apply access boundaries to space lists, documents and search. Page access does not expose every space.
- Submit expected versions and resolve conflicts instead of disabling version checks.
- Verify proposal eligibility, cross-space search and parsing failures; never mark unsupported scanned content as successfully extracted.
These are acceptance requirements for your integration, not claims of completed live verification. Ask the Agent to report actual changes, executed checks and unverified items. See Continue developing your app and Testing for project guidance, Skills and shared checks.