|Demo

Mullion Helpdesk Demo

Prevent context leaks with type-safe scope isolation

The Scenario

A customer support system processes support tickets containing sensitive internal notes alongside public responses. The challenge: ensure internal admin notes never leak into customer-facing responses.

The Problem

Traditional approaches risk context leaks where sensitive admin notes accidentally appear in customer responses, potentially exposing confidential information.

Mullion's Solution

Mullion enforces compile-time scope boundaries. Admin data is tagged with an admin scope, and customer responses with a public scope. Cross-scope data flow requires explicit bridging, making leaks impossible.

How It Works

❌ Without Mullion: Risk of Context Leak

unsafe-flow.ts
// ❌ UNSAFE: No scope tracking
const ticket = await analyzeTicket(ticketText);
const response = await generateResponse(ticket.content);
// Admin notes might leak into response!

Without scope tracking, admin notes can accidentally leak into customer responses.

✅ With Mullion: Type-Safe Isolation

safe-flow.ts
// ✅ SAFE: Mullion enforces scope boundaries
const adminCtx = scope('admin');
const publicCtx = scope('public');

// Process in admin scope
const ticket = await adminCtx.infer(TicketSchema, ticketText);

// Generate response in public scope
// Must explicitly bridge if using admin data
const response = await publicCtx.infer(
  ResponseSchema,
  `Create response for: ${ticket.value.summary}`
);

Mullion enforces scope boundaries at compile-time. Data flows are explicit and trackable.

Try It Yourself

Enter a support ticket and see how Mullion prevents context leaks in real-time.