Prototype / Threat modeling

ThreatCanvas

Threat models rot: they live in documents nobody updates when architecture and trust boundaries change.

Built with React / TypeScript / Vite / AntV X6 / Go / chi / Azure AD SSO / Azure OpenAI GPT-4o Source private — details on request

My contribution Built the interactive modeling experience, Go API, enterprise authentication, and human-reviewed AI assistance flow.

Problem

Most threat models are produced once, as a compliance artifact, and abandoned. The failure mode is structural: the model is a drawing plus prose, disconnected from the system it describes, so keeping it current costs more than the value it returns.

Architecture decision

ThreatCanvas makes the diagram the database. Components, data flows, and trust boundaries are structured data edited through an interactive canvas built on AntV X6 (Vite/React/TypeScript). Threats and mitigations attach to specific elements, so when the architecture changes, the affected threats are identifiable rather than buried in prose.

The backend is Go with chi — small, fast, and boring on purpose. Azure AD SSO makes it deployable inside an enterprise tenant without a parallel identity store. Azure OpenAI GPT-4o assists threat identification: it proposes candidate threats against the modeled elements and boundaries, and the human keeps accept/reject authority, so the model output remains suggestions rather than silent additions.

Outcome

Pilot results (session completion time, threat coverage against a baseline) are not yet published; this page will link them when they are.

← All projects