Knowledge Source Knowledge Source protocol schemas
Knowledge Source — declarative metadata describing what to index and
which adapter to use.
A KnowledgeSource is the metadata-level equivalent of an
IDataEngine driver binding: it pairs a logical source description
(object/file/http) with the id of an IKnowledgeAdapter plugin
that will actually do the work. The adapter resolves the id at
runtime via IKnowledgeService.registerAdapter.
See content/docs/protocol/knowledge.mdx for the full design.
Source: packages/spec/src/ai/knowledge-source.zod.ts
import { FileKnowledgeSourceSchema, HttpKnowledgeSourceSchema, KnowledgeRefreshPolicySchema, KnowledgeSourceSchema, KnowledgeSourceKindSchema, ObjectKnowledgeSourceSchema } from '@objectstack/spec/ai' ;
import type { FileKnowledgeSource, HttpKnowledgeSource, KnowledgeRefreshPolicy, KnowledgeSource, KnowledgeSourceKind, ObjectKnowledgeSource } from '@objectstack/spec/ai' ;
// Validate data
const result = FileKnowledgeSourceSchema. parse (data);
Property Type Required Description kind 'file'✅ prefix string✅ Storage prefix mimeTypes string[]optional
Property Type Required Description kind 'http'✅ urls string[]✅ userAgent stringoptional
Property Type Required Description onRecordChange booleanoptional cron stringoptional
Property Type Required Description id string✅ Snake_case source id label string✅ description stringoptional adapter string✅ Adapter id adapterConfig Record<string, any>optional source { kind: 'object'; object: string; contentFields: string[]; metadataFields?: string[]; … } | { kind: 'file'; prefix: string; mimeTypes?: string[] } | { kind: 'http'; urls: string[]; userAgent?: string }✅ embedding { provider: Enum<'openai' | 'cohere' | 'azure_openai' | 'huggingface' | 'local' | 'custom'>; model: string; dimensions: integer; endpoint?: string; … }optional vectorStore { provider: Enum<'pgvector' | 'chroma' | 'qdrant' | 'pinecone' | 'weaviate' | 'milvus' | 'redis' | … +3 more>; collection: string; endpoint?: string; secretRef?: string; … }optional refresh { onRecordChange?: boolean; cron?: string }optional aiExposed booleanoptional
This schema accepts one of the following structures:
Property Type Required Description kind 'object'✅ object string✅ Short object name to index contentFields string[]✅ Fields contributing to document content metadataFields string[]optional where Record<string, any>optional
Property Type Required Description kind 'file'✅ prefix string✅ Storage prefix mimeTypes string[]optional
Property Type Required Description kind 'http'✅ urls string[]✅ userAgent stringoptional
Property Type Required Description kind 'object'✅ object string✅ Short object name to index contentFields string[]✅ Fields contributing to document content metadataFields string[]optional where Record<string, any>optional