Skip to content

Latest commit

 

History

History
99 lines (84 loc) · 6.34 KB

File metadata and controls

99 lines (84 loc) · 6.34 KB

AI Helpdesk (MSP Ticketing Platform)

CI

An IT Helpdesk Support System for Managed Service Providers (MSPs). Each deployment serves a single MSP that supports multiple customer organizations (“Customer Accounts”). It provides role‑based access, a knowledge‑driven workflow, and future AI augmentation. The system is built with ASP.NET Core + Blazor and targets Microsoft Azure (Linux App Service) for deployment.

Key Features

  • Single‑MSP instance with multiple Customer Accounts and strict account‑level data isolation
  • Ticket lifecycle management (New → Open/In Progress → Resolved → Closed; reopen supported)
  • Anonymous ticket submission and customer portal updates
  • Roles: Customer (account‑scoped), Agent, Admin, AI Agent (virtual); optional anonymous ticket submission
  • Knowledge Base and Customer Environment repository
  • Agent/AI conversation threads, internal notes, attachments
  • Search, filtering, and basic reporting (tickets by status, time, assignee, client)
  • Notifications (new/updated tickets; roadmap for email/push)
  • Extensible architecture with planned AI agent integration (RAG‑backed LLM)

Tech Stack

  • Backend/UI: .NET (currently 9 for local dev; plan to move to .NET 10 per requirements), ASP.NET Core, Blazor
  • Styling: Tailwind CSS
  • Data: EF Core (SQLite by default for local/dev)
  • Cloud: Azure App Service (Linux)
  • Future AI: LLM‑powered “AI Agent” with Retrieval‑Augmented Generation

Repository Layout

  • docs/ – requirements and project documentation
  • src/Server/ – ASP.NET Core host (API + Blazor)
  • src/Shared/ – shared contracts/models
  • src/Client/ (if Blazor WASM is adopted)
  • tests/ – unit and integration tests

Skeleton projects are present; additional services will be added incrementally.

Agent UI

Home Page: / — Tailwind-styled landing page with quick links to the Agent Queue and Knowledge Base. Public UI:

  • New Ticket: /public/ticket — anonymous ticket creation scoped by Customer Account Id.
  • Knowledge Base: /public/kb — browse/search published articles (optionally scoped by Customer Account Id). Supports filtering by Category, free‑text search, and tags. Login: /login — Submits via POST to avoid leaking credentials in URLs.
  • Queue: /agent/queue — filter by account, status, priority; optional assignee. The User filter for the "Mine" queue is now a searchable combobox (type email or name).
  • Ticket Detail: /agent/tickets/{id}?customerAccountId={accountId} — shows timeline with internal-notes toggle, change status, assign, attachments, linked environment items, and links to KB and Environment lists. Assignee selection is now a searchable combobox, and posting a message uses the form submit button for reliability.
  • Knowledge Base: /agent/kb?customerAccountId={accountId} — list articles for the account (or global when omitted). From this page, create new (/agent/kb/new) and edit existing (/agent/kb/edit/{id}) articles. Articles now include an optional Category field to help organize content. Delete supports account-scoped enforcement via customerAccountId. The Customer filter is a searchable combobox.
  • Environment Items: /agent/env?customerAccountId={accountId} — list, create, manage secrets, and delete environment items for the account. See docs/user_guide.md#agent-basics for an Agent basics walkthrough (queues, filters, ticket detail, attachments, KB linking). Admin UI:
  • Users: /admin/users — list users, invite new users (email + roles), and set Agent/Admin roles.
  • Settings: /admin/settings — manage encrypted application settings.
  • Customers: /admin/customers — list accounts, create new, toggle status, add/remove domains, and delete customers (deletion blocked if tickets exist).

MVP Scope (Phase 1)

  • Single‑MSP instance supporting multiple Customer Accounts
  • Ticket CRUD, lifecycle statuses, assignment, file attachments
  • Knowledge Base and Environment docs (CRUD, link tickets → KB)
  • Local authentication (with future Microsoft Entra ID)
  • Basic reporting and in‑app notifications
  • Azure deployment scaffold (Linux App Service)

Getting Started

Current local workflow (Sep 28, 2025):

  • Install .NET SDK 9.0.305 (pinned via global.json).
  • UI toolchain: npm ci (installs Tailwind/PostCSS locally).
  • Build: dotnet build ai-helpdesk.sln (0 warnings expected; auto-builds Tailwind to src/Server/wwwroot/app.css).
  • Test: dotnet test ai-helpdesk.sln.
  • Run: dotnet run --project src/Server/Helpdesk.Server.csproj and open the shown URL.

Authentication (local)

  • Default admin is seeded automatically: admin@example.com / Admin!12345.
    • If you can’t sign in, double‑check the password isn’t mistyped as Admin!1234 (missing the last digit).
  • Override via environment variables Identity__DefaultAdmin__Email and Identity__DefaultAdmin__Password.
  • Sign in at /login; sign out posts to /auth/logout.
  • In development, the login page shows the configured defaults (read from appsettings/env vars) to avoid drift.

As features land, we will document database setup, migrations, and deployment in docs/deployment.md.

Releases and Installers

  • Creating a GitHub Release triggers CI to:
    • Build and attach MSI installers for Windows x64 and Windows ARM64.
    • Optionally deploy to Azure App Service when repository secrets are configured.
  • See docs/deployment.md for details and local MSI build instructions.

Documentation

  • Requirements Specification: docs/requirements.md
  • Technical Specification: docs/technical.md
  • Documentation Overview: docs/AGENTS.md
  • Development Setup: docs/development.md
  • Deployment Guide: docs/deployment.md
  • User Guide: docs/user_guide.md
  • API Documentation: docs/api.md
  • Testing Guide: docs/testing.md

Observability

  • Azure Monitor OpenTelemetry is supported via Azure.Monitor.OpenTelemetry.AspNetCore.
  • Enable telemetry by setting either environment variable:
    • APPLICATIONINSIGHTS_CONNECTION_STRING
    • AzureMonitor__ConnectionString
  • When enabled, traces/metrics/logs are automatically exported; see docs/development.md and docs/deployment.md for details.

Contributing

See AGENTS.md for coding standards, testing methodology, branching, PR checks, and documentation expectations.