Roadmap: External Source Connector Framework

Gap statement: zero external connectors in a market defined by them

Wikantik ingests wiki-native pages, Tika-extracted document uploads (POST /api/ingest), and MCP writes. It has no connectors to external systems, no continuous synchronization, and no incremental change detection. Every surveyed source names connector breadth and production-grade sync the primary differentiator among enterprise RAG platforms. This is the widest gap in the portfolio and the one that most limits the "RAG-as-a-service" claim.

Market grounding: the connector benchmarks

Current Wikantik state: the substrate already exists

The derived-pages machinery is the right foundation — what is missing is the source side:

Proposed direction

  1. Connector SPI + sync scheduler in a new wikantik-connectors module: SourceConnector interface (enumerate, fetch, cursor/checkpoint, delete-detection), per-connector sync state persisted in PostgreSQL, scheduled incremental runs modeled on OntologyRebuildScheduler.
  2. Source-item → derived-page mapping: each external item becomes a derived page with derived_from pointing at a connector-scoped URI, source metadata mapped into frontmatter, and reflow semantics reused for re-sync.
  3. v1 connector set (pick by user demand, not breadth): Confluence, Google Drive, GitHub (repos + issues), S3, web crawler, Slack.
  4. Delete propagation from source to derived page (required for GDPR right-to-be-forgotten; see RoadmapCompliancePosture).
  5. Webhook/push receivers as a later phase; scheduled pull with cursors first.

Phase 1 scope and acceptance criteria

First session scope: the SourceConnector SPI in wikantik-connectors + the sync-state migration + ONE read-only connector against a local fixture (filesystem tree or static HTTP fixture). No OAuth, no scheduler, no webhooks, no real external service.

Phase 1 is done when these integration tests are green (TDD: write them first):

  1. A fixture corpus syncs into derived pages — derived_from carries the connector-scoped URI, source metadata lands in frontmatter, and the pages pass the frontmatter schema validator.
  2. A sync killed mid-run and restarted resumes from its cursor without duplicating or re-processing already-synced items.
  3. A tombstoned (deleted-at-source) item removes or archives its derived page on the next sync.
  4. The sync-state migration re-applies as a no-op (project migration convention), and the item schema carries source ACL references (unenforced — the RoadmapExternalAclInheritance co-design constraint).

Out of Phase 1's DoD: scheduler wiring, credential encryption, any real-service connector. Those are Phase 2, gated on the Phase-1 SPI surviving review.

Verify before designing on these

Non-goals

Investigation starting points

See Also