Skip to main content
PUT
Update an existing knowledge entry

Authorizations

Authorization
string
header
required

API-Token aus dem Big-Panda-Admin-UI unter Einstellungen → API-Keys. Header: Authorization: Bearer <token>.

Headers

X-Scopes
string
default:""

Space-separated scope set from the token (ADR-015)

X-Audit-Source
string
default:api

Audit-channel from the gateway (M.5)

X-Client-Id
string | null

OAuth client_id; only set for MCP-channel calls

Path Parameters

entry_id
string<uuid>
required

Body

application/json

Payload for updating an existing knowledge entry.

All fields are optional. Only fields that are explicitly provided will be modified.

type is intentionally absent — type is immutable after create (ADR-020). To change the type of an entry, delete and re-create. metadata is validated against the existing entry's type by the update route, not here, because the schema does not see the DB.

title
string | null
Required string length: 1 - 500
content
string | null
Minimum string length: 1
summary
string | null
category_id
string<uuid> | null
layer
string | null
Maximum string length: 50
tags
string[] | null
visibility
enum<string> | null

Allowed values for the visibility field of a knowledge entry.

'personal' is ownership-gated (ADR-015 §3a): it exists in the enum so responses carrying it validate correctly, but write-side routes block it on the main path — personal entries are created via POST /knowledge-entries/personal only.

'workspace' (ROADMAP M.8) is the workspace-scoped visibility hook. Code accepts the value passively until tenants.workspaces_enabled is flipped on; today no read path filters by it.

Available options:
public,
internal,
personal,
restricted,
community,
workspace
metadata
Metadata · object | null
source_reference
string | null
similarity_text
string | null
search_keywords
string[] | null
project_ids
string<uuid>[] | null

Response

Successful Response

Knowledge entry data returned in HTTP responses.

title
string
required
Required string length: 1 - 500
content
string
required
Minimum string length: 1
category_id
string<uuid>
required
visibility
enum<string>
required

Allowed values for the visibility field of a knowledge entry.

'personal' is ownership-gated (ADR-015 §3a): it exists in the enum so responses carrying it validate correctly, but write-side routes block it on the main path — personal entries are created via POST /knowledge-entries/personal only.

'workspace' (ROADMAP M.8) is the workspace-scoped visibility hook. Code accepts the value passively until tenants.workspaces_enabled is flipped on; today no read path filters by it.

Available options:
public,
internal,
personal,
restricted,
community,
workspace
id
string<uuid>
required
tenant_id
string
required
type
enum<string>
required

Allowed values for the type discriminator (ADR-020).

Mirrors ALLOWED_TYPES in app/models/knowledge_entry.py and the DB CHECK constraint added in migration 0026. Each value selects a metadata-schema in app/schemas/entry_metadata.py.

Available options:
knowledge,
skill,
process,
glossary,
memory,
bootstrap,
skill_index
version
integer
required
language
string
required
translation_group_id
string<uuid>
required
source
enum<string>
required

Where a knowledge entry originated from.

Available options:
manual,
import,
conversational,
learning_loop,
system
source_reference
string | null
required
embedding_model
string | null
required
created_at
string<date-time>
required
updated_at
string<date-time>
required
summary
string | null
layer
string | null
Maximum string length: 50
tags
string[]
workspace_id
string<uuid> | null
created_by_user_id
string<uuid> | null
metadata
Metadata · object
search_keywords
string[]