VulnTrack provides a complete vulnerability lifecycle management system that allows security teams to track vulnerabilities from discovery through remediation. The platform supports multi-tenant team workspaces with role-based access control and approval workflows.
Only admins can assign vulnerabilities to team members. Assignments trigger automatic notifications via email and in-app alerts.
// From src/app/actions/vulnerabilities.ts:408export async function assignVulnerability( vulnerabilityId: string, assigneeId: string | null) { // Verify assignee is in same team if (assignee.teamId !== vulnerability.teamId) { return { success: false, error: "Assignee must be in same team" } } // Create notification await prisma.notification.create({ data: { userId: assigneeId, type: "ASSIGNMENT", title: "New Vulnerability Assigned", message: `You have been assigned to: ${vulnerability.title}` } }) // Send email notification await sendEmail({ to: assignee.email, subject: `New Assignment: ${vulnerability.title}`, html: getAssignmentEmail(vulnerability.title, vulnerabilityId) })}
VulnTrack enforces strict team-level data isolation. Users can only access vulnerabilities within their assigned team workspace. Cross-tenant access is blocked at the database query level.
// From src/app/actions/vulnerabilities.ts:32let whereClause: any = { teamId: teamId // Scope to team}if (user.role !== 'ADMIN') { // Non-admins see APPROVED items OR their own items whereClause = { teamId: teamId, OR: [ { approvalStatus: "APPROVED" }, { userId: session.user.id } ] }}