Nox-Lumen MfgNox-Lumen Mfg

source-sdk

One-liner

Have the platform pull periodically from your Feishu space, SharePoint, Notion, SVN, internal DMS… into the KB automatically—no manual uploads or “sync now” clicks.

Install

Email for access

Request ragbase-source-sdk at info@nox-lumen.com.

pip install ragbase-source-sdk

Five-minute sample

ragbase-cli init source my-sharepoint
cd my-sharepoint
vi src/my_sharepoint/main.py
from ragbase.source_sdk import Source, source_action
 
class SharePointSource(Source):
    @source_action(name="list_documents")
    def list_documents(self, ctx, since=None):
        token = ctx.credentials["sp_token"]
        # Call your SharePoint API to enumerate files
        for doc in self.list_changed_since(since, token):
            yield {
                "doc_id": doc.id,
                "title": doc.title,
                "uri": doc.url,
                "mtime": doc.modified,
            }
 
    @source_action(name="fetch_document")
    def fetch_document(self, ctx, doc_id: str):
        token = ctx.credentials["sp_token"]
        return ctx.fetch_binary(self.download_url(doc_id, token))

Runtime invokes list_documents on your cadence (cron) and feeds only changed docs downstream to parsers and ES.

Boundary vs channels

  • source = one-way into the KB (SharePoint → KB)
  • channel = conversational surface (bots sending/receiving)

You could hack ingestion through channel-sdk, but source-sdk aligns with lifecycle, credential isolation, and incremental sync.

Industry sparks

IndustryIdea
AutomotiveContinuous DOORS Next / Polarion defect sync
ManufacturingMES job logs; internal SVN process docs
OfficeNotion / Confluence / homegrown wikis

See also

On this page