Interactive demo for exploring Information Flow Control (IFC) using security lattices and labeled data flows:
- Define lattices of security labels (e.g. Low ≤ High).
- Create labeled data sources and compose flows with transformations and joins.
- Define sinks with required labels and test writes against IFC rules.
- Visualize flows, violations, and explanations using React Flow.
- NEW! Understand how your GUI changes translate to IFC safe code using the ifc-ts library
- Clone the repository:
git clone https://github.com/<your-org>/ifc-ts-demo.git cd ifc-ts-demo
- Install dependencies:
npm install
- Start the dev server:
The demo will be available at http://localhost:5173.
npm run dev
... or just visit maxpieter.github.io/ifc-ts-demo
This project builds on and demonstrates concepts from ifc-ts, a TypeScript library for information flow control.
The original ifc-ts package focuses on compile-time enforcement: TypeScript’s type system ensures
your lattice, principals, and flows are sound during development. This demo flips the perspective to a
runtime sandbox where you can create labels, edges, and flows on the fly. That means the interactive
UI maintains its own lattice state, materialises joins/meets dynamically, and surfaces violations in
real time.