Skip to content

Repository files navigation

SupportOps AI

SupportOps AI is an API-first modular monolith for support and incident operations. It combines org-scoped auth, ticket workflows, SLA automation, analytics, audit logging, and AI suggestions that stay behind human approval.

What Exists Today

  • Org-only multi-tenancy with org-scoped RBAC
  • Auth with refresh token rotation
  • Ticket lifecycle with comments and priorities
  • SLA sweeper with BullMQ retries and a dead-letter queue
  • AI suggestions for summarize, classify, and draft-comment
  • Mandatory human approval before AI output is applied
  • Backend audit logs
  • Analytics summary endpoints
  • Thin Next.js web UI for login, tickets, AI review, analytics, and audit logs
  • OpenAPI, Docker Compose, structured logging, metrics, tests, and GitHub Actions CI

API Surface

  • POST /v1/auth/login
  • POST /v1/auth/refresh
  • POST /v1/auth/logout
  • GET /v1/me
  • GET /v1/org
  • GET /v1/users
  • GET /v1/tickets
  • POST /v1/tickets
  • GET /v1/tickets/:id
  • PATCH /v1/tickets/:id
  • POST /v1/tickets/:id/comments
  • POST /v1/tickets/:id/ai/summarize
  • POST /v1/tickets/:id/ai/classify
  • POST /v1/tickets/:id/ai/draft-comment
  • GET /v1/tickets/:id/ai-suggestions
  • POST /v1/ai-suggestions/:id/approve
  • POST /v1/ai-suggestions/:id/reject
  • GET /v1/analytics/summary
  • GET /v1/audit-logs
  • GET /health/live
  • GET /health/ready
  • GET /metrics

Run With Docker Compose

  1. Copy .env.example to .env
  2. Run pnpm install
  3. Run docker compose up -d --build api
  4. Wait for http://localhost:3001/health/ready to return {"status":"ready"}

Run API Locally Against Dockerized Postgres/Redis

  1. Copy .env.example to .env
  2. Run pnpm install
  3. Run docker compose up -d postgres redis
  4. Run pnpm prisma:generate
  5. Run pnpm prisma:migrate:dev
  6. Run pnpm seed
  7. Run pnpm dev:api
  8. In a second terminal run pnpm dev:web

Run The Full Local Flow

  1. Copy .env.example to .env
  2. Run pnpm install
  3. Run docker compose up -d postgres redis
  4. Run pnpm prisma:generate
  5. Run pnpm prisma:migrate:dev
  6. Run pnpm seed
  7. Run pnpm dev:demo

Local Credentials

  • owner@supportops.local / Passw0rd!
  • admin@supportops.local / Passw0rd!
  • agent@supportops.local / Passw0rd!
  • viewer@supportops.local / Passw0rd!

AI Behavior

  • Default local setup uses AI_ENABLED=false, so AI routes return deterministic fallback suggestions without calling OpenAI.
  • To use OpenAI for real suggestions, set AI_ENABLED=true and provide OPENAI_API_KEY in .env.
  • Approval is always required before a suggestion is applied to a ticket.

Walkthrough

  1. Open http://localhost:3000 and log in as agent@supportops.local.
  2. Open the seeded billing timeout ticket from the tickets list.
  3. Add a comment or move the ticket status to triaged or in_progress.
  4. Generate summarize, classify, or draft-comment suggestions.
  5. Approve one suggestion and reject another.
  6. Open analytics to show the summary cards and backend-driven breakdown tables.
  7. Log out, then sign in as admin@supportops.local and open audit logs.

Frontend Walkthrough

  1. Start on /login with the seeded agent@supportops.local account.
  2. Open the billing timeout ticket from /tickets.
  3. On /tickets/:id, show the live ticket state card, update the status, add one short comment, then generate AI suggestions.
  4. Keep the ticket detail page on screen long enough to show that suggestion cards are separate from the applied ticket state, then approve one suggestion and reject one.
  5. Open /analytics, then switch to admin@supportops.local and finish on /audit-logs.

User Accounts

Password: "Passw0rd!"

Screenshots

Login

Login screen

Tickets

Tickets list

Ticket Detail + AI Review

Ticket detail with AI suggestions

Analytics

Analytics summary

Validation

  • pnpm --filter @supportops/web lint
  • pnpm --filter @supportops/web typecheck
  • pnpm --filter @supportops/web build
  • pnpm ci:local
  • pnpm exec prisma validate --schema prisma/schema.prisma
  • docker compose config
  • pnpm smoke:auth
  • pnpm smoke:tickets
  • pnpm smoke:ai
  • pnpm smoke:demo

Runtime Endpoints

  • Web UI: http://localhost:3000
  • Swagger UI: GET /docs
  • OpenAPI JSON: GET /docs/json
  • Ready: GET /health/ready
  • Live: GET /health/live
  • Metrics: GET /metrics

About

SupportOps AI is an API-first modular monolith for support and incident operations. It combines org-scoped auth, ticket workflows, SLA automation, analytics, audit logging, and AI suggestions that stay behind human approval.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages