Skip to content

OmnifactAI/jit-management-assignment

Repository files navigation

JIT Access Management

A temporary access request management tool where managers/admins can approve short-lived elevated access for engineers and support staff to different resources and environments.

Tech Stack

  • Monorepo: Turborepo with npm workspaces
  • Backend: Fastify, SQLite (via Kysely query builder)
  • Frontend: React (Vite), Shadcn UI (Tailwind v4), TanStack React Query
  • Auth: JWT-based (username + password)

Getting Started

Prerequisites

  • Node.js >= 20
  • npm

Setup

npm install
npm run seed
npm run dev

This starts both the API server (port 3001) and the frontend dev server (port 5173). The frontend proxies /api requests to the backend.

Seed Data

All users have the password: password123

Username Name Role
admin Admin User admin
alice Alice Manager approver
bob Bob Engineer requester
carol Carol Support requester

Resources: Database, Cache, Logs

Environments: Production, Staging, Development

The seed also creates sample access requests in various states (pending, approved, rejected).

Project Structure

├── apps/
│   ├── api/          Fastify backend
│   └── web/          React frontend
└── packages/
    ├── shared/       Shared TypeScript types
    └── ui/           Shadcn UI components

What's Implemented

  • User authentication (login, JWT session, protected routes)
  • Access requests dashboard (list view with status, requester, resource, environment)
  • Backend API routes for reading users, resources, environments, and access requests
  • Seed data for demo/development

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors