Commit Graph

795 Commits

Author SHA1 Message Date
Oliver Kieselbach cdba7f2cb4 mcp user mgmt, vul report re-scan logging 2026-03-29 12:57:36 +02:00
Oliver Kieselbach dd2ee928b0 mcp tool extented and meta, mcp usage data UI, better logging for backend 2026-03-29 12:41:09 +02:00
Oliver Kieselbach 0d1fc98e4a Merge branch 'main' of https://github.com/okieselbach/Autopilot-Monitor 2026-03-29 01:19:09 +01:00
Oliver Kieselbach fc53787d97 mcp tools update 2026-03-29 01:18:51 +01:00
Oliver Kieselbach 3b3d14c50b Merge pull request #36 from okieselbach/claude/fix-rescan-persistence
Fix rescan not persisting results when no vulnerabilities found
2026-03-29 00:39:17 +01:00
Oliver Kieselbach 45f30ed944 Merge branch 'main' of https://github.com/okieselbach/Autopilot-Monitor 2026-03-29 00:18:38 +01:00
Oliver Kieselbach 193cdf6714 fix oauth flow 2026-03-29 00:18:13 +01:00
Claude 53afa30068 Fix rescan not persisting results when no vulnerabilities found
When CorrelateAsync returned null (zero findings after correct version
filtering), the rescan code path fell through to returning the OLD
stored report instead of persisting the new result. Now properly
handles the null case by deleting the stale report and returning
a clean response.

Added DeleteVulnerabilityReportAsync to the repository interface
and implementations.

https://claude.ai/code/session_01Kv2aAEVqbeFSsyPv7gU7pF
2026-03-28 22:55:09 +00:00
Oliver Kieselbach 9a7c2aa4b6 Merge pull request #35 from okieselbach/claude/dynamic-client-registration-QaeKu 2026-03-28 23:04:31 +01:00
Claude a3d319acd1 Fix session never stored: move transports.set() after handleRequest
The session ID is generated inside StreamableHTTPServerTransport during
handleRequest() when it processes the initialize method. The previous
code called transports.set() BEFORE handleRequest(), at which point
transport.sessionId was still undefined — so the session was never
stored in the map. Every subsequent request got "No valid session."

https://claude.ai/code/session_01S8iM5fK53kYa54tydpgsNq
2026-03-28 22:02:48 +00:00
Claude dc9b1cb3e1 Add Protected Resource Metadata (RFC 9728) and WWW-Authenticate headers
The missing piece for dynamic client registration: Claude Code needs
/.well-known/oauth-protected-resource to discover the authorization
server after receiving a 401. Without this, the OAuth discovery chain
never starts and sessions can't be established.

Changes:
- Add GET /.well-known/oauth-protected-resource endpoint (RFC 9728)
- Add WWW-Authenticate header with resource_metadata URL to all 401s
- Update flow documentation in oauth.ts header comment

https://claude.ai/code/session_01S8iM5fK53kYa54tydpgsNq
2026-03-28 22:02:48 +00:00
Oliver Kieselbach 36f7276275 Merge pull request #34 from okieselbach/claude/dynamic-client-registration-QaeKu 2026-03-28 19:35:12 +01:00
Claude 1a20477c14 Add RFC 7591 dynamic client registration to MCP OAuth proxy
Remove hardcoded clientId from .mcp.json so clients (Claude Code) can
dynamically register via POST /oauth/register instead of requiring a
pre-configured client ID.  The MCP server generates a UUID per client
and stores it in-memory; the real Entra ID credentials stay server-side.

https://claude.ai/code/session_01S8iM5fK53kYa54tydpgsNq
2026-03-28 18:33:55 +00:00
Oliver Kieselbach 8aca182b35 Merge pull request #33 from okieselbach/claude/fix-cve-filtering-HsxF4 2026-03-28 19:07:48 +01:00
Claude e3a99e519a Fix CVE version filtering to exclude already-fixed vulnerabilities
The FilterByVersion wildcard logic was treating CVEs with specific
versions in their CPE URI as affecting ALL versions. Now extracts the
version from the CPE 2.3 URI and compares it against the installed
version, so only truly relevant CVEs are shown.

Also adds missing CPE seed mappings for common Intune/Autopilot
managed software: Intune Management Extension, Company Portal,
ODBC/OLE DB drivers, Remote Desktop, Azure CLI.

https://claude.ai/code/session_01Kv2aAEVqbeFSsyPv7gU7pF
2026-03-28 18:03:29 +00:00
Oliver Kieselbach 68857ebabb vul report fix 3 2026-03-28 17:00:24 +01:00
Oliver Kieselbach 9db2678315 vul report fix 2 2026-03-28 16:51:42 +01:00
Oliver Kieselbach 908640a47d fix vul report 2026-03-28 16:09:03 +01:00
Oliver Kieselbach 91cba0e093 session handling 2026-03-28 11:36:49 +01:00
Oliver Kieselbach be549a0b6d fix session hanling 2026-03-28 11:28:20 +01:00
Oliver Kieselbach 19e5283676 force re-initialize 2026-03-28 11:22:38 +01:00
Oliver Kieselbach 8d49a798a4 fix internal error 2026-03-28 11:16:40 +01:00
Oliver Kieselbach 825e062d92 fixed auth function 2026-03-28 10:56:50 +01:00
Oliver Kieselbach e6c5f0fca2 oauth fix 2026-03-28 10:38:52 +01:00
Oliver Kieselbach fff0db014f added logging 2026-03-28 10:29:06 +01:00
Oliver Kieselbach 29acaabb4a fix mcp schema 2026-03-28 10:09:02 +01:00
Oliver Kieselbach de21d2c7b1 final mcp work 2026-03-28 09:51:57 +01:00
Oliver Kieselbach fbea8b5ca4 final CORS fix by using different route 2026-03-28 09:42:28 +01:00
Oliver Kieselbach 30ecdac684 moved CORS to env vars 2026-03-28 09:33:29 +01:00
Oliver Kieselbach 49a14c0a00 added CORS middleware 2026-03-28 09:26:44 +01:00
Oliver Kieselbach cefdc5e8fb CORS fix 2026-03-28 09:16:27 +01:00
Oliver Kieselbach d0a79310f4 oauth flow changes 2026-03-28 09:02:23 +01:00
Oliver Kieselbach b7d040d33d CORS fix 2026-03-28 08:54:39 +01:00
Oliver Kieselbach b297923b59 fix mcp users sidebar entry 2026-03-28 08:35:00 +01:00
Oliver Kieselbach 8a4a7cf255 Remote MCP server: Streamable HTTP transport, Container App deployment, MCP user access control
- MCP server: stdio → Streamable HTTP (Express) with /health endpoint
- Auth: device code flow → token pass-through (JWT from Claude Code client)
- Dockerfile (multi-stage, node:22-slim) + .dockerignore
- Bicep template: ACR + Container App Environment + Container App (scale-to-zero)
- GitHub Actions: deploy-mcp.yml workflow, all backend workflows migrated to SP auth
- Removed unused dev/main deploy workflows
- Backend: McpAccessPolicy enum (Disabled/WhitelistOnly/AllMembers)
- Backend: McpUsers table + McpUserService (5min cache) + McpUserFunction (CRUD + access check)
- Backend: 6 endpoints registered in EndpointAccessPolicyCatalog
- Web UI: MCP Users management section at /settings/access/mcp-users
- Web UI: user list, add/remove/enable/disable, policy info banner

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 08:09:58 +01:00
Oliver Kieselbach 72d000e9a8 oauth flow change 2026-03-28 06:41:43 +01:00
Oliver Kieselbach 1609710fe3 oauh flow changes 2026-03-28 06:32:45 +01:00
Oliver Kieselbach 219f5c686a oauth for mcp server 2026-03-28 06:15:12 +01:00
Oliver Kieselbach be5a37e7bb oauth for mcp server 2026-03-28 06:15:08 +01:00
Oliver Kieselbach 7cae2515c1 change title 2026-03-28 05:42:08 +01:00
Oliver Kieselbach cb14e3afbe switch to managed identity 2026-03-28 04:32:34 +01:00
Oliver Kieselbach a6f552a877 added MCP capabilities 2026-03-28 04:20:50 +01:00
Oliver Kieselbach 802e59799c fix compiler nullable warnings 2026-03-27 22:36:36 +01:00
Oliver Kieselbach 4eec3767a7 fixed SEO meta and search route conflicts 2026-03-27 22:23:55 +01:00
Oliver Kieselbach e63929cb30 changed route for quick search 2026-03-27 22:16:30 +01:00
Oliver Kieselbach f016620a29 layout fix quick search 2026-03-27 22:06:11 +01:00
Oliver Kieselbach f2acfc06f1 changed bing auth 2026-03-27 22:01:43 +01:00
Oliver Kieselbach 99eac1369f layout fixes and fuzzy search 2026-03-27 21:50:46 +01:00
Oliver Kieselbach 22af37e994 added global quick search 2026-03-27 21:37:03 +01:00
Oliver Kieselbach 12880a8e1d renamings 2026-03-27 20:59:05 +01:00