K-Lake KDBL Context Lake

The context layer for the files you already have, and the assistants you already use.

K-Lake runs as a small set of services in your Kubernetes cluster. It reads your object stores, file shares and Microsoft 365 libraries read-only, extracts and enriches what is inside every file, and serves the result to people and AI assistants, trimmed to what each of them may already open.

Sources

Point it at what you have. Leave everything where it is.

A source is one location K-Lake is told to track. Each has its own credentials, encrypted before they reach the database, its own enable switch, and its own policy for how much metadata to capture. Crawls run on demand, on a schedule, or through the API, and record what they find without moving, renaming or rewriting a single file.

  • Captures path, size, timestamps and content hash for every file
  • Optionally captures S3 and Azure tags, NTFS and NFSv4 ACLs, POSIX ownership and extended attributes
  • Cheap fields are recorded inline; heavier ones are enriched in the background
Object storesAmazon S3 and S3-compatible stores such as MinIO, Wasabi and on-prem gateways. Azure Blob Storage, including ADLS Gen2.
File sharesSMB and CIFS shares, over a userspace client or the kernel client. NFSv3 and NFSv4 exports.
Microsoft 365SharePoint document libraries and OneDrive for Business, through Microsoft Graph.
AccessRead-only, always. K-Lake never writes to a source.

Content extraction

Read what is inside, on engines you host.

Every source runs its files through an extraction pipeline that pulls text and structure out of PDFs, Office documents, spreadsheets and images, and transcribes audio and video. All of it runs on self-hosted engines inside your cluster, so no file content leaves your environment.

  • A fast default engine for the bulk of a corpus, packing many workers onto a node
  • A document engine for scanned PDFs, OCR and structured tables, splitting large scans across the fleet
  • An optional vision-model engine for the hardest layouts, GPU-accelerated
  • A media engine that transcribes spoken words and on-screen text with timecodes, so a hit opens the player at the exact moment

Tune it per source: file-size ceilings, include and exclude paths, extension lists, and which engine to use. Watch progress live in pages per second, with quarantined failures listed alongside.

Content-extraction configuration for a source: extension allow-list, per-file size cap, modified-date window and include and exclude path patterns

Per-source extraction settings in the console.

An extraction fleet, not a single box.

Extraction is the heavy job, so it is sized separately from the crawl workers and scales out as a fleet. Add replicas to extract more files in parallel. Runners scale automatically with the backlog: capacity is added when work piles up and released when it drains. Both the default and document engines run on x86-64 and ARM nodes.

Sizing guide
The extractors fleet view in the K-Lake console showing engines, replicas and throughput

The extractor fleet, by engine.

AI over MCP

Any assistant. Your content. The user's permissions.

K-Lake ships a Model Context Protocol server, so Claude Desktop, Claude Code, ChatGPT, Cursor, IDE assistants and your own agents can search and read your extracted content without a bespoke integration. It serves extracted text and metadata only, never original file bytes.

  • A full OAuth 2.1 authorization server that federates sign-in to your identity provider
  • Assistants connect as the individual user and inherit their per-file trimming
  • Every tool call, including denied ones, is recorded with who, what, when and where
  • Ships dark: until you switch it on, the endpoint is indistinguishable from one that was never built
MCP server documentation
The MCP access flow: users on the left, the AI platforms they use, the tools they called, and the sources those calls reached

Live access flow: users, platforms, tools and sources.

See who is asking, and stop them if you need to.

Tenant administrators get a dedicated MCP view in the console: the live access flow, active connections by user and client, token revocation, and per-source exposure control. Hide a source from AI with one switch while it stays searchable in the console.

Each tenant gets its own MCP endpoint and its own sign-in issuer, so a token is resolved to exactly one tenant and refused everywhere else. For local evaluation and air-gapped sites an assistant can authenticate with a personal access token and no identity provider at all.

Active MCP sessions in the K-Lake console, by user and client, with revocation controls

Active sessions, with revocation.

What assistants can do

Orient with an estate summary, list sources and files, search content, read a file's text or a window of it, compare versions, and walk the knowledge graph.

MCP skills

Bundled guidance teaches an assistant how to use the tools well: search before reading, cite what it found, and respect what it cannot see.

Clients

Tested with Claude Desktop, Claude Code, ChatGPT and Cursor, and works with any client that speaks MCP over Streamable HTTP.

Knowledge graph

Who appears across these contracts?

Enrichment reads the text K-Lake has already extracted and records the people, organisations, locations, agreements and whatever else you configure, along with the relationships the text asserts between them. Enable it per source; it backfills files extracted before you switched it on.

  • Three views: Orbit around one entity, an expanding Network, and a Documents view that evidences why two entities are linked
  • Asserted relations are kept distinct from co-occurrence, which only means "seen together"
  • Intersection queries: which files mention all of these entities at once
  • Reverse lookup from any file: what is this document about
  • Merge duplicate spellings of a name, reversibly; saved queries keep working

Entity results obey the same per-file trimming as search. A user sees how many of an entity's documents they can read, and the tenant-wide mention count, so they know it matters more widely without learning anything about the files themselves.

The Explore page: an organisation at the centre with people, agreements, counterparties and locations around it, and a table of each relationship below

Orbit view with the matching table beneath. Illustrative data.

Discover

What data do we actually have?

Discover turns everything K-Lake has crawled and extracted into a tenant-wide estate overview, with no re-crawl and no extra configuration. It answers the governance question every organisation eventually asks: what exists, where, how old, how much is searchable, and how exposed.

  • Totals for files, size, sources and last indexed time, for the tenant or one source
  • Searchability: extracted, pending, skipped and failed, so a crawled-but-never-extracted source stands out
  • Composition by file type, content type, language, size band, age, owner, storage tier and source
  • Exposure signals: world-readable, stale beyond three years, no owner, duplicate copies
  • Click a bar to list the actual files behind it

Coverage is reported honestly. Where a facet depends on metadata only some sources captured, the card says so rather than presenting a partial number as ground truth.

The Discover dashboard: estate totals, a searchability bar, and composition by file type, content type and language

Discover, ranked by file count. Toggle to rank by size.

Smart Actions

Decide what happens to each file once it is found.

After each crawl, every file flows through a pipeline of actions you compose per source. Actions run in order, each building on the last. Everything a step produces is stored alongside the file and never written back into it.

  • Only re-does what changed: alter a redaction rule and only redaction re-runs
  • Retroactive: add a step to a crawled source and a background sweep backfills it
  • Resilient: each step is tracked per file, so a transient failure is retried, not dropped
  • Elastic: runners scale with the backlog
The Smart Actions panel on a source, listing content extraction and redaction steps with add, reorder, enable and configure controls

A source's pipeline in the console.

Content extractionPulls searchable text and structure out of each file. The default first step.
RedactionMasks identifiers, email addresses, card numbers, phone numbers, IP addresses and your own patterns in the extracted text, so search and AI return the masked version. Includes a rule tester and a record of what each run removed.
WebhookSends a signed JSON notification to an HTTPS endpoint you control whenever a file completes its pipeline, with a pre-flight check on the target.
Fallback extractionWhen the default extractor fails on a file, or optionally when it reports a table it could not structure, retries that file on a heavier engine. Scoped by extension, size and path.
Entity enrichmentBuilds the knowledge graph from extracted text, with a per-source schema and a bounded budget per document.
Coming soonData placement to copy or tier objects elsewhere; custom sandboxed scripts; a custom container run as a one-shot job per file.

Security

Per-file trimming, enforced where the data lives.

A caller sees a file only if the file's source-native permissions grant their identity access. NTFS and NFSv4 ACLs and POSIX ownership are captured at crawl time, correlated to your directory identities by directory enrichment, and enforced by row-level security in the database. The same guarantee applies to the console, the CLI, the API and AI over MCP.

  • Fail-closed: access is denied by default and granted only by explicit policy
  • Tenant isolation is enforced in the database the same way, not in application code
  • Only the people you appoint see a whole source regardless: tenant administrators and a source's own owners and editors
  • A built-in diagnostic answers "why can't this user see this file?"
Security trimming status for a source in the K-Lake console
The file access check: which principal can see which file, and why

Trimming status per source, and the per-file access check.

Identity

Federated sign-in over OIDC and OAuth 2.1 to Microsoft Entra ID, Okta, Google, Keycloak or any compliant provider. K-Lake holds no passwords. Personal access tokens act as exactly one user.

Encryption

TLS in transit. Secrets sealed with authenticated encryption before they reach the database, under a master key supplied from a Kubernetes Secret or external manager and re-read per use, so rotation needs no restart.

Audit

Every AI query and every open of an original file is recorded with principal, tenant, sources and files returned, client address and outcome. Structured logs and Prometheus-compatible metrics for your SIEM.

Memory-safe core

Services and every connector are written in Rust, eliminating buffer overflows, use-after-free and data races at compile time.

Supply chain

Signed release images, minimal containers, and a rolling daily security report of vulnerability findings across every shipped image.

Data protection

KDBL is registered with the UK Information Commissioner's Office. Because K-Lake is self-hosted, KDBL never processes or receives your indexed data.

From a single VM to a production cluster, on your terms.

K-Lake runs inside your own Kubernetes environment. Licensing is offline and fail-closed, with no licence-server call-home, so it works where the internet does not.

Proof of concept in one command

The evaluation installer stands up the full stack on a single Docker or Podman VM, onboards a demo tenant, and prints the console URL and tokens. Eight vCPU and 16 GB is comfortable; a 30-day evaluation licence is included.

Production on Kubernetes

Helm-based deployment into your cluster, with a managed database or one you bring, separate sizing for crawl workers and the extraction fleet, and autoscaling on the backlog.

Azure Marketplace

Deploy through the Azure Marketplace offer and entitlement follows your plan for the life of the deployment, with no licence to obtain or apply by hand.

Air-gapped

Runs with no internet egress at all, including fully on-prem AI retrieval over MCP with a self-hosted model. Regulated and disconnected environments are first-class.

Multi-tenant and white-label

Every source, user and file belongs to exactly one tenant, isolated in the database. Each tenant gets its own MCP endpoint and can federate to its own identity provider. Licences can carry a product name for white-label deployments.

Licensing

Licensed by source-file capacity with an expiry, as a signed, tamper-evident document you apply once. Renew or resize by applying a new licence, with no reinstall.

Three interchangeable interfaces, plus your assistant.

Every action is scoped to your tenant and audited. Pick whichever suits the job; they act on the same data.

Web console

Dashboards, source management, content search, Explore, Discover, the MCP view, users and tokens. Signs in through your identity provider.

Dashboard  Sources  Discover
Search     Explore  MCP
Extractors Fleet    Settings

Command line

Seed crawls, manage sources and pipelines, onboard tenants, apply licences, query the graph and the estate.

kdbl-control source add smbfs://nas/contracts
kdbl-control entities intersect --ids 12,48,301
kdbl-control discover breakdown age --metric bytes
kdbl-control licence status

REST API

Programmatic access to every operation, authenticated with a personal access token or an OIDC bearer token.

GET /api/content/search?q=renewal
GET /api/discover/overview
GET /api/entities/12/related
GET /api/licence

K-Lake is the first product on the KDBL platform.

The index K-Lake builds is the foundation for what comes next. Here is what is in development now, and how to be first to hear about further products.

Data classification

Discover's exposure signals are the bridge to a classification release: labelling what each file is and how sensitive it is, from the content K-Lake has already read.

Data placement

A Smart Action to copy or tier each object to another location once it has been read and classified.

Your own logic per file

Sandboxed custom scripts and one-shot custom containers as pipeline steps, so your rules run inside the same governed flow.

Further KDBL products are in development. Register interest

Before the evaluation.

Does K-Lake copy or move my files?

No. Sources are read read-only and the originals stay exactly where they are. K-Lake stores metadata, extracted text and what enrichment derives from it, alongside the file record, never in the file. The MCP server serves extracted text and metadata, not original bytes.

Will connecting an AI assistant expose files people cannot normally open?

No. An assistant connects as the individual user and inherits their per-file trimming, enforced by row-level security in the database. Every answer is limited to files that person could already open, and every query is recorded in the audit trail.

Does any content leave our environment?

Not unless you choose it. Extraction and transcription run on self-hosted engines in your cluster, licensing is validated offline, and the product does not phone home. If you configure an external extraction provider for some files, each send is recorded in the audit trail with the file, the provider and the bytes sent. Which model your assistant uses is your choice; a fully on-prem model works over MCP in air-gapped mode.

What does an evaluation look like?

A single-VM installer brings up the full stack in one command with a 30-day evaluation licence. Point it at a representative share or bucket, extract, search, connect your assistant, and open the originals behind the answers. When it fits, the same product deploys into your production cluster.

How is it priced?

By licensed source-file capacity and term. Azure Marketplace deployments follow your plan. Tell us the size of your estate and we will quote for it.

See it on your own kind of data.

Tell us what you hold and what you want to ask of it. We will demonstrate K-Lake on a representative estate and set you up with an evaluation licence.

Request a demo
  • Full stack on one VMEvaluate in under an hour.
  • Your data never leavesRead-only sources, self-hosted extraction.
  • Same product in productionNo migration from a trial to the real thing.