mirror of
https://github.com/okieselbach/AutopilotMonitor.git
synced 2026-10-25 05:00:07 +00:00
923a1c793a
Adopt the Open Knowledge Format (GoogleCloudPlatform/knowledge-catalog) for contributor/AI-facing technical docs: YAML frontmatter on the three existing concept documents, new index.md (progressive disclosure, root carries okf_version) and log.md, plus the maintenance convention in .claude/CLAUDE.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
136 lines
6.8 KiB
Markdown
136 lines
6.8 KiB
Markdown
---
|
||
type: Architecture Guide
|
||
title: Autopilot Monitor – Architecture Guide
|
||
description: High-level architecture overview and solution layout for contributors.
|
||
tags:
|
||
- architecture
|
||
- agent
|
||
- backend
|
||
- web
|
||
- mcp
|
||
timestamp: 2026-07-06T21:39:29+02:00
|
||
---
|
||
|
||
# Autopilot Monitor – Architecture Guide
|
||
|
||
> High-level architecture overview and solution layout for contributors.
|
||
> Full product documentation lives at https://docs.autopilotmonitor.com.
|
||
|
||
---
|
||
|
||
## High-Level Overview
|
||
|
||
```text
|
||
+----------------------------------------------------------------------------------+
|
||
| Autopilot Monitor - Architecture |
|
||
+----------------------------------------------------------------------------------+
|
||
|
||
[Admin/User Browser]
|
||
|
|
||
| HTTPS
|
||
v
|
||
+-----------------------------+ OIDC +-------------------------------+
|
||
| Web App (Next.js) |<---------------->| Microsoft Identity (Entra ID) |
|
||
| Dashboard / Progress | | Auth / Authorization |
|
||
+-----------------------------+ +-------------------------------+
|
||
^ ^
|
||
| |
|
||
| | Live updates
|
||
| |
|
||
| | +---------------------------+
|
||
| +-------------------------| SignalR Hub |
|
||
| | Real-time event stream |
|
||
| +---------------------------+
|
||
| ^
|
||
| REST / API |
|
||
v | events
|
||
+---------------------------+ Data & |
|
||
| Azure Functions Backend |------> Integrations ---+
|
||
| APIs / Ingestion / Rules | \
|
||
+---------------------------+ \ +---------------------------+
|
||
^ +----->| Storage Tables |
|
||
| mTLS | Sessions / Events / Rules |
|
||
| telemetry / events +---------------------------+
|
||
| +---------------------------+
|
||
+---------------------------+ | Notifications |
|
||
| Agent on Windows Devices | | Teams / Slack / Webhooks |
|
||
| Enrollment + app progress | +---------------------------+
|
||
+---------------------------+
|
||
+---------------------------+
|
||
| MCP Server |
|
||
| Azure Container App |
|
||
+---------------------------+
|
||
```
|
||
|
||
**Core Data Flow:**
|
||
```
|
||
Device (Agent) ──JSON telemetry+gzip──► Azure Functions ──► Azure Table Storage
|
||
│ │
|
||
├── SignalR ─────────►│
|
||
│ │
|
||
Web Dashboard ◄── REST API ◄──┘
|
||
```
|
||
|
||
| Component | Technology | Purpose |
|
||
|-----------|------------|---------|
|
||
| **Agent** | .NET Framework 4.8 (Windows) | Runs on devices during enrollment, collects telemetry |
|
||
| **SummaryDialog** | .NET Framework 4.8 (WPF) | Post-enrollment summary UI (outcome, app timeline, auto-close) |
|
||
| **Backend** | Azure Functions .NET 8 (Isolated Worker) | REST API, event processing, rule engine, storage |
|
||
| **Web** | Next.js 15 + TypeScript + React 18 | Dashboard, settings, analytics, real-time UI |
|
||
| **Shared** | .NET Standard 2.0 | DTOs, models, enums, constants shared between Agent & Backend |
|
||
| **MCP Server** | Azure Container App | Model Context Protocol server for AI-assisted analysis |
|
||
|
||
---
|
||
|
||
## Solution Structure
|
||
|
||
```
|
||
AutopilotMonitor.sln
|
||
├── src/
|
||
│ ├── Shared/
|
||
│ │ ├── AutopilotMonitor.Shared/ (netstandard2.0 – DTOs, models, enums, constants)
|
||
│ │ └── AutopilotMonitor.DecisionCore/ (netstandard2.0 – completion decision engine)
|
||
│ ├── Agent/
|
||
│ │ ├── AutopilotMonitor.Agent.V2/ (net48, Exe – entry point; output named AutopilotMonitor.Agent.exe)
|
||
│ │ ├── AutopilotMonitor.Agent.V2.Core/ (net48, Lib – core logic)
|
||
│ │ ├── AutopilotMonitor.Agent.V2.Core.Tests/ (net48, xUnit – agent unit tests)
|
||
│ │ ├── AutopilotMonitor.DecisionCore.Tests/ (net48, xUnit – decision engine tests)
|
||
│ │ ├── AutopilotMonitor.SummaryDialog/ (net48, WPF – enrollment summary UI)
|
||
│ │ └── AutopilotMonitor.SummaryDialog.Tests/ (net48, xUnit)
|
||
│ ├── Backend/
|
||
│ │ ├── AutopilotMonitor.Functions/ (net8.0, Azure Functions v4)
|
||
│ │ └── AutopilotMonitor.Functions.Tests/ (net8.0, xUnit)
|
||
│ ├── McpServer/
|
||
│ │ └── autopilot-monitor-mcp/ (TypeScript/Node – MCP server; deployed as Azure Container App)
|
||
│ └── Web/
|
||
│ └── autopilot-monitor-web/ (Next.js 15, TypeScript)
|
||
├── rules/
|
||
│ ├── gather/ Individual gather rule JSONs
|
||
│ ├── analyze/ Individual analyze rule JSONs
|
||
│ ├── ime-log-patterns/ IME regex pattern JSONs
|
||
│ ├── schema/ JSON Schema definitions
|
||
│ ├── guardrails.json Gather-rule guardrail allow-lists (source)
|
||
│ ├── scripts/ combine.js
|
||
│ └── dist/ Combined output (embedded in Functions)
|
||
├── infra/ Bicep templates (MCP server)
|
||
├── scripts/
|
||
│ ├── Backup/ Table backup/restore tooling
|
||
│ ├── Bootstrap/ Intune deployment scripts
|
||
│ ├── CustomerSetup/ Customer onboarding helpers
|
||
│ └── Deployment/ CI/CD build scripts
|
||
└── .github/workflows/ CI/CD pipelines
|
||
```
|
||
|
||
**Project References:**
|
||
```
|
||
Shared + DecisionCore ◄── Agent.V2.Core ◄── Agent.V2
|
||
◄── Agent.V2.Core.Tests
|
||
Shared + DecisionCore ◄── DecisionCore.Tests
|
||
Shared + DecisionCore ◄── Functions ◄── Functions.Tests
|
||
SummaryDialog ◄── SummaryDialog.Tests (standalone; compiled alongside the agent build)
|
||
Web (independent – communicates via REST + SignalR)
|
||
McpServer (independent – talks to the backend REST API)
|
||
```
|
||
|
||
---
|