Configuration
Supported File Types
For structured data (CSV, JSON, XML), use database destinations (PostgreSQL, MongoDB) instead.
Vault Secrets
Weaviate connection
Embedding API
The embedding secret is server-level (ai.embedding.secretName, default oss/embedding) and is seeded automatically by docker/vault-init.sh. See AI Configuration and the Qdrant docs for the full picture.
bge-m3 and vault-init.sh seeds the embedding secret to point at it — no OpenAI key required.
Chunking Strategies
Documents are split into chunks before embedding. Each chunk becomes a separate Weaviate object with the document’s metadata pluschunk_index, filename, and source_pipeline properties.
chunkSize(default 500): maximum characters per chunkchunkOverlap(default 50): characters of overlap between consecutive chunks
Metadata
Static metadata is attached to every chunk as Weaviate properties, enabling filtered semantic search:text— the chunk textchunk_index— position of the chunk in the documentfilename— original uploaded filenamesource_pipeline— pipeline name
How It Works
- Upload — an unstructured file (PDF, DOC, DOCX, HTML, text) is uploaded via
POST /api/v1/pipeline/upload - Extract — text is extracted from the document (PDFBox for PDFs, Apache POI for Word, JSoup for HTML)
- Chunk — text is split into chunks using the configured strategy
- Embed — each chunk is sent to the embedding API to generate a vector
- Upsert — vectors are upserted into the Weaviate class with metadata properties
- Notify — a pipeline notification is published on completion
Running Weaviate
Weaviate ships as a bundled opt-in Compose service. Enable it with one line in.env:
COMPOSE_PROFILES=weaviate,kafka). The install.sh installer can also enable Weaviate at install time — it writes the profile and seeds the oss/weaviate secret for you. On the Compose network the bundled container is reachable at weaviate:8080; on the host it is published at port 8079 to avoid conflict with the pipeline server on port 8080.
To use an existing external or Weaviate Cloud instance instead, skip the profile and point the oss/weaviate secret’s host/port/apiKey at it — the secret fields are the same either way. You can also run Weaviate standalone:
