Part of the Æ Aether Ecosystem · Platform Layer
Organisational knowledge — document indexing, semantic vector search, a Retrieval-Augmented Generation pipeline, and a knowledge graph, scoped per tenant and collection.
Capability
Aether Vault owns the ecosystem's Knowledge capability exclusively — ingesting enterprise content and turning it into retrievable, structured, always-fresh knowledge.
Chunk, embed (384-dim), and store documents — from inline text or a source URI, idempotently, so re-indexing never leaves stale chunks.
Pull from file: (allowed-root confined), http(s):, or s3: sources through a default-deny registry — freshness-aware, so an unchanged source is never re-embedded.
Cosine-distance semantic retrieval over pgvector, scoped strictly to a single collection.
Embed a query, retrieve nearest chunks, assemble a length-bounded context for an agent's prompt.
Named-entity nodes with mention salience and typed, confidence-weighted relation edges — extracted automatically from documents on ingest.
A scheduled sweep flags indexed documents past their (per-collection) re-index interval as stale — marks, never deletes. Collections that opt in are then auto-refreshed by a second sweep that re-fetches stale documents through their source connector. A collection's derived knowledge — documents, chunks, and graph — can be erased on a right-to-erasure request.
Ingest → Retrieve
A document is chunked and embedded on ingest; a query is embedded and matched against those chunks, then assembled into a bounded context — retrieval never leaves the collection.
Inline text or a source connector; register, compute checksum.
Split into overlapping slices.
384-dim vector per chunk via Ollama.
Cosine search within the collection.
Bounded context for the agent.
Architecture
Strict inward dependency: vault-api → vault-engine → vault-domain. The domain is pure Java 21 — no framework coupling.
KnowledgeDocument, DocumentChunk, KnowledgeScope, RagContext, KnowledgeEntity, EntityRelation + port interfaces. No Spring.
pgvector chunk store, Ollama embedding, text chunker, ingestion, RAG pipeline, knowledge-graph store, freshness sweep.
Spring Boot app, controllers, Flyway migrations, scheduled freshness, Micrometer metrics.
Docker Compose, production Helm chart (hardened deployment + HPA + release workflow), standalone migration copies. No Java sources.
API Surface
| Method | Path | Description |
|---|---|---|
| POST | /api/v1/tenants/{t}/collections/{c}/documents | Ingest a document from inline text |
| POST | /api/v1/tenants/{t}/collections/{c}/documents/from-source | Ingest from a source URI (connector, freshness-aware) |
| GET | /api/v1/tenants/{t}/collections/{c}/documents | List documents in a collection |
| DEL | /api/v1/tenants/{t}/collections/{c}/documents/{id} | Delete a document and its chunks |
| POST | /api/v1/rag/query | Vector search + bounded context assembly; includeGraph adds a knowledge-graph projection (entity-aware RAG) |
| POST | /api/v1/tenants/{t}/collections/{c}/entities | Create / reinforce a graph entity |
| GET | /api/v1/tenants/{t}/collections/{c}/entities/{id}/neighbours | Traverse an entity's neighbours |
| GET PUT | /api/v1/tenants/{t}/collections/{c}/freshness-policy | Per-collection re-index interval + auto-reingest opt-in |
| DEL | /api/v1/tenants/{t}/collections/{c} | Right-to-erasure — erase a collection's documents, chunks, and graph (GDPR Art. 17) |
Delivery
Foundation