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.
- 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)
- Node.js >= 20
- npm
npm install
npm run seed
npm run devThis starts both the API server (port 3001) and the frontend dev server (port 5173). The frontend proxies /api requests to the backend.
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).
├── apps/
│ ├── api/ Fastify backend
│ └── web/ React frontend
└── packages/
├── shared/ Shared TypeScript types
└── ui/ Shadcn UI components
- 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