Mosaic
GitHub
Live demo · no credentials DataHub-native

Metadata-aware code generation for privacy remediation

The graph finds the risk.
Mosaic writes the fix.

Mosaic finds privacy risk created when individually harmless columns combine across pipelines, proves it without reading identities, and generates a review-ready fix grounded in DataHub context.

Understand it first
6 merge-ready artifacts 0 raw rows exposed 7 DataHub capabilities
research_export_clean

Privacy assessment

Compositional risk

Critical
Smallest group1 person
Groups under 5100%
Person-level rows0
Generated remediationdbt model + aggregate privacy test6 files ready

This hosted experience is intentionally read-only. It replays deterministic evidence produced by the real engine. Clone the repository to connect DataHub Core, run live discovery, generate local artifacts, and approve catalog write-back.

Run locally

Understand Mosaic in 60 seconds

Stop a risky release before it becomes an incident.

A column can look harmless by itself and become identifying only after pipelines combine it. Mosaic follows that combination from discovery to a reviewable fix.

01

Safe alone does not mean safe together

ZIP code, birth date, and demographic category can describe a tiny group when they converge.

02

DataHub supplies the missing map

Column lineage shows where each field came from and which downstream assets inherit the combination.

03

Mosaic counts groups, never identifies people

k=1 means one unique record. Mosaic asks "how many records share this combination?" using aggregate counts only.

FindCross-source convergence
ProveAggregate-only risk
FixReview-ready dbt change

0 person-level rows exposed

Choose one demo at a time

Four cases. You control the pace.

Select any case, reveal one evidence step at a time, and move on only when you are ready.

Manual four-case reviewStart when ready, then advance one step per click.Select a case, start it, inspect each step, then choose what comes next.

Built for every team around governed data: privacy gets evidence, data gets exact lineage, governance gets durable review state, and security gets a prioritized blast radius. no privacy background needed.

Interactive judge demo · no credentials

Research export investigation

Follow the exact evidence chain from DataHub context to a governed proposal.

  1. 1DiscoverRead lineage
  2. 2ConvergeMap families
  3. 3ValidateCounts only
  4. 4DefendReject injection
  5. 5MitigateShadow test
  6. 6GenerateReviewable PR
Before you run
The whole idea

DataHub shows the combination. Mosaic proves whether it is risky.

Press Start selected demo to reveal step 1. We will explain each catalog read, calculation, safety guardrail, and proposed action, one evidence step per click.

What to watch for

The agent receives metadata and group counts - never a person-level row.

DataHub column lineage

Convergence and blast radius

Metadata only
1
Selected evidenceSupport contacts

ZIP5 and full birth date enter through independent column-lineage paths.

What Mosaic proved

Risk is created by convergence, not by one tagged column.

The per-table baseline reports no compositional finding. DataHub lineage reveals the exact cross-source combination that baseline cannot see.

01 Independent source families

02 Exact aggregate validation

03 Downstream impact traced

Agent activity

Evidence-producing steps

00:00.0
  1. No actions yet. Start the selected demo above.
Metadata graph + agent contextDataHub

Reads schema, fine-grained lineage, ownership, and downstream impact; preserves reviewed decisions through governed write-back.

Inspect the live backend map

Why Mosaic needs DataHub

DataHub is the reasoning substrate—not a logo in the footer.

Mosaic needs DataHub to know which ordinary columns came from independent systems, where they converge, who inherits them, and where an approved privacy decision should live. Remove the context graph and the primary finding disappears.

7 DataHub capabilities6 agent stages4 re-read governance checks1 merged upstream contribution
  1. 01ReadSchema + column lineage
  2. 02ReasonCross-source convergence
  3. 03TraceDownstream blast radius
  4. 04ProveAggregate anonymity
  5. 05GenerateCode + reviewed context
Technical deep diveInspect 7 DataHub integrations, 6 Mosaic extensions, and live agent receiptsExplore evidence
01Graph

Fine-grained lineage

Reconstructs which columns originate separately and converge in a shared export.

Code receipt
02Graph

Downstream graph

Turns one validated finding into the exact partner, model, and analytics impact boundary.

Proof receipt
03SDK

Python SDK

Creates synthetic assets and reads catalog entities through DataHub-supported interfaces.

Proof receipt
04API

GraphQL API

Creates structured privacy state and verifies active incidents after governed publication.

Code receipt
05Agent tools

MCP Server

Proves agent-callable search, entity reads, column lineage, tagging, and mutation re-read.

Code receipt
06Agent judgment

DataHub Skill

Packages discovery, safety, verdict, mitigation, approval, and failure handling for another agent.

Inspect skill
07Catalog memory

Governed write-back

Persists a field tag, structured property, threat-model Document, and incident—then re-reads all four.

Code receipt

Beyond the platform primitives

What Mosaic adds beyond DataHub out of the box.

DataHub provides trusted context and actions. Mosaic composes them into a new privacy decision system.

01

Graph-native privacy reasoning

Finds risk created by relationships—not a tag, field, or table in isolation.

02

Aggregate-only proof

A fail-closed SQL policy measures anonymity while person-level rows stay at zero.

03

Merge-ready remediation codegen

Emits dbt code, aggregate tests, policy, provenance, and PR documentation.

04

Cross-asset join privacy

Detects when two individually ordinary tables become re-identifying only through a shared join key.

05

Model proposes, policy disposes

Unsafe row-level SQL is rejected; organization policy, not an LLM, controls the verdict and generated test.

06

Tamper-evident memory

Digest-backed evidence and re-read write-back make the decision inheritable.

Live engine output

The join creates the risk.

These upstream assets are ordinary alone. Mosaic reads lineage families and shared join-key metadata, then raises a screening candidate before anyone writes a joining query.

Metadata screening only0 raw rowsAggregate validation required
...cross-asset candidates
Asset AReading estate scan...Independent context
shared key...
Asset BReading estate scan...Independent context

The API result will appear here without exposing a person-level row.

Inspect every machine-readable finding →

Real model + adversarial receipts

A model can suggest. It cannot decide.

Mistral nominates catalog columns and explains the choice. Mosaic owns the only permitted query and verdict. A replayed prompt injection hidden in DataHub metadata asks for raw identifiers; policy refuses it and the safe run continues.

Loading receipt...
Model proposesAsset + columns + rationale

Reading the recorded Ollama run.

validated
Policy disposesDeterministic verdict + SQL

No model output is executed.

1 unsafe proposal vetoed... metadata injection refused0 raw rows returnedInspect attack receipt →
Research foundationsSee how six external sources changed the controlsOpen

Research-backed engineering

Built on standards, not vibes.

Each source changes a control you can inspect. None is presented as certification or a substitute for organization-specific review.

Inspect the complete claim-to-control map and implementation receipts →
Evidence ladderChallenge Mosaic with five independent proof typesOpen

Evidence ladder

Four ways to challenge the claim.

Each proof answers a different question. Mosaic keeps their scope visible instead of blending synthetic, recorded, external, and live evidence into one oversized claim.

Regression48 / 48

Exact seeded cases

Exact metric agreement, policy boundaries, safe controls, and zero raw rows. Perfect here means the bounded regression passed - not field accuracy.

Inspect estate scan
Foreign catalog3 families / 10 upstreams

Positive DataHub showcase result

Mosaic traversed 55 fields in DataHub's official e-commerce pack, retained 32 column origins, excluded job nodes, and returned zero raw rows.

Inspect live receipt
Integration5 / 5

Hash-verified replay

Versioned DataHub schema, lineage, downstream, MCP, and governed write-back semantics are replayed from a tamper-evident fixture.

Inspect fixture
External datak=43 → 1

Composition in the wild

32,561 UCI Adult records processed in memory. Six ordinary attributes create small classes; no source row is committed.

Inspect aggregate proof
Reusable agent1 skill

Workflow, packaged

The DataHub privacy skill carries discovery, query safety, verdict, evidence, approval, and failure-handling rules into another agent.

Inspect the skill

Your data, your machine

Stop taking our fixtures on faith.

Every other panel runs on committed samples. This one runs on a file you choose. Mosaic’s whole argument is that person-level data should not travel, so this measurement happens entirely in your browser — the file is never uploaded, and nothing about it reaches this server.

1 Load a file

Drop a CSV here, or click to browse Stays on your machine · CSV or TSV with a header row
No file handy?

2 Pick two or more columns

Load a file to list its columns.

Result

Nothing measured yet.

  • How many people share each combination
  • The smallest group, and how many records sit under k=5
  • A verdict against the same policy the CLI uses

Your file is read in this browser tab. It is not uploaded.

Want the JSON receipt? uv run mosaic measure --csv <your-file>.csv --columns col_a,col_b,col_c applies the identical rule in the terminal. Samples live in examples/bring-your-own-data.

AdoptionMove from no-setup demo to your governed environmentOpen

Adoption path

Start without credentials. Grow without replacing the workflow.

Every stage has an honest boundary. Explore immediately, reproduce locally, connect a disposable DataHub environment, then add your organization’s controls for production.

  1. 01Explore

    No setup

    Run four guided cases, inspect evidence, and learn the safety model in this read-only demo.

    Available now
  2. 02Evaluate

    Local and offline

    Run the CLI, benchmark, DataHub replay fixture, and reusable agent skill with one locked environment.

    Available now
  3. 03Connect

    Disposable DataHub

    Verify live SDK, GraphQL, MCP, lineage, blast radius, and dry-run governance against synthetic assets.

    Configuration required
  4. 04Operate

    Your control plane

    Add SSO, RBAC, approved warehouse adapters, asset allowlists, policy thresholds, and named reviewers.

    Production hardening required
Open readiness plannerRun locally

Implemented today: DataHub Core + DuckDB reference validation. Enterprise warehouses and identity controls are explicit integration boundaries—not unearned claims.

Plain-English glossarySix terms explained without privacy jargonOpen

Plain-English reference

Every term used in the demo.

You do not need privacy-engineering or DataHub experience. Open any term for a thirty-second explanation.

DataHub lineage +

A map showing which dataset or column produced another dataset or column. Mosaic uses it to find attributes that begin in separate systems and later meet.

Quasi-identifier +

An ordinary attribute - such as ZIP code or birth date - that is not a direct identity by itself but can narrow a person down when combined with other attributes.

Minimum k +

The size of the smallest group sharing an identical attribute combination. Lower is riskier. k=1 means one record has a unique combination; k=20 means it blends into a group of twenty.

Aggregate-only query +

A query that returns counts for groups, not individual rows. Mosaic permits one allowlisted GROUP BY COUNT(*) shape and rejects joins, filters, row projections, and mutations.

Blast radius +

Every downstream dataset, delivery, dashboard, or model that inherited the risky combination. DataHub's graph lets Mosaic trace that impact beyond the first finding.

Governed write-back +

A proposed catalog update that requires human approval. When approved locally, Mosaic writes the risk state, evidence document, field tag, and incident to DataHub, then rereads them to verify persistence.

Built to investigate risk, not enable it

Evidence without identities.