Commit Graph

931 Commits

Author SHA1 Message Date
Oliver Kieselbach ea322aef5c improve report modal: cumulative file picker for agent logs and screenshots
Browse button now adds files incrementally instead of replacing the
previous selection. Each file shows name, size, and an x-button to
remove it. Duplicate files (same name+size) are silently skipped.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 15:28:27 +02:00
Oliver Kieselbach 30728c7011 fix report modal: clarify that multiple agent log files are allowed
The input already supports multiple files but the label didn't indicate
it, unlike the screenshots field.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 15:16:47 +02:00
Oliver Kieselbach d1e6f9c18d fix session report submission: raise body size limit from 1 MB to 20 MB
Reports with screenshots and agent logs easily exceed 1 MB after base64
encoding. 20 MB accommodates 5 MB agent logs (~6.7 MB base64) plus
multi-MB screenshots plus CSV/TXT exports.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 15:09:44 +02:00
Oliver Kieselbach ab030dce7f fix crash rate: only count exception crashes, not hard/reboot kills
Hard kills and reboot kills are expected during enrollment (reboots, process
termination) and should not inflate the crash rate. Only exception crashes
represent actual failures. UI updated to visually separate expected exits.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 14:50:51 +02:00
Oliver Kieselbach 23195dcd1b fix agent docs: bootstrapper arrives seconds after enrollment, not minutes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 14:50:14 +02:00
Oliver Kieselbach b53e992f25 add full enrollment timeline docs section explaining IME log backfill
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 14:41:41 +02:00
Oliver Kieselbach d0842913c6 fix settings docs: correct group ordering, add missing settings, merge enrollment summary into agent parameters
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 14:26:21 +02:00
Oliver Kieselbach 26d0ae5ea7 update agent changelog with April 2026 entries
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 14:10:05 +02:00
Oliver Kieselbach 60b8372de0 fix composite PartitionKey leaking into event TenantId + add MCP integration test suite
MapToEnrollmentEvent was returning the composite PartitionKey ({TenantId}_{SessionId})
as TenantId instead of extracting the actual tenant ID. Now prefers the stored TenantId
property with fallback extraction from the composite key.

Also adds a Vitest-based integration test suite (39 tests) covering all MCP tool endpoints:
- Session tools (search, get, events, analysis, CVE, blocked devices)
- Admin tools (metrics, geographic, platform, usage, audit, ops, reports)
- Raw data tools (tables, raw sessions/events, backend logs)
- Read-only verification (PUT/DELETE rejection)
- Error handling (404, 400, empty results)

Run with: AUTOPILOT_API_TOKEN="eyJ..." npm test

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 13:12:44 +02:00
Oliver Kieselbach e940273a89 fix Global Admin cross-tenant fallback for session events, analysis, and vulnerability endpoints
GetSessionEventsFunction, GetRuleResultsFunction, and GetVulnerabilityReportFunction
were missing the FindSessionTenantIdAsync fallback that GetSessionFunction already had.
When a Global Admin queried a cross-tenant session without explicit tenantId, the
middleware defaulted to the JWT tenant, causing partition key mismatch and empty results.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 12:34:38 +02:00
Oliver Kieselbach a493ccaec4 add desktop fallback strategy for summary dialog launch (0x8007045A)
First 3 attempts use default desktop (""), then alternate with explicit
"WinSta0\Default" to handle post-Hello desktop access issues. Log tags
[default desktop]/[explicit desktop] for traceability.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 12:32:22 +02:00
Oliver Kieselbach eaba031b82 fix multiline script output matching in PS-AGENT-OUTPUT/ERROR patterns
.* doesn't match newlines without Singleline flag — script stdout/stderr
from AgentExecutor.log spans multiple lines and was never captured.
Changed to [\s\S]*? to match across newlines.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 11:25:53 +02:00
Oliver Kieselbach 221233b029 fix link 2026-04-03 10:50:37 +02:00
Oliver Kieselbach 37acdb5794 added exclude pattern to ui 2026-04-03 10:43:13 +02:00
Oliver Kieselbach 6cac2ba513 Ops Alerts discoverability 2026-04-03 10:38:32 +02:00
Oliver Kieselbach 6214c9993d fixed seed import 2026-04-03 01:30:23 +02:00
Oliver Kieselbach 7763563c76 improved matching with exclude pattern 2026-04-02 23:13:21 +02:00
Oliver Kieselbach cc42a22fcb vulnerability matching improvements, including confidence levels and data freshness indicators. These changes enhance the accuracy and transparency of vulnerability reporting in the Autopilot Monitor application. 2026-04-02 22:55:28 +02:00
Oliver Kieselbach b2871b9a9d added more tests 2026-04-02 22:43:44 +02:00
Oliver Kieselbach 44e8ea6f9b added sigterm handler 2026-04-02 22:33:33 +02:00
Oliver Kieselbach 3cfb586da6 even better error handler with more granular details 2026-04-02 22:22:18 +02:00
Oliver Kieselbach be71e5a321 error handler hardened 2026-04-02 22:09:37 +02:00
Oliver Kieselbach d824dd64fd added structured error handler 2026-04-02 22:02:09 +02:00
Oliver Kieselbach 42d296b9af chagned stale vulnerabilityCache data handling 2026-04-02 21:40:42 +02:00
Oliver Kieselbach 743d7b3372 fixex for vulnerability matching (respect platform, wildcard matches with low confidance flag now, mismatched secure client, updated seed file) 2026-04-02 21:36:57 +02:00
Oliver Kieselbach 4298223d38 added Ops Alerts 2026-04-02 21:25:27 +02:00
Oliver Kieselbach 1e23f7e624 fix whiteglove eventtimeline rendering issue 2026-04-02 19:40:13 +02:00
Oliver Kieselbach 1dbe22795c Merge pull request #38 from okieselbach/claude/add-ops-monitoring-table-HkmIZ 2026-04-02 19:18:56 +02:00
Claude d80b138392 Merge remote-tracking branch 'origin/main' into claude/add-ops-monitoring-table-HkmIZ
# Conflicts:
#	src/Web/autopilot-monitor-web/tsconfig.tsbuildinfo
2026-04-02 17:17:56 +00:00
Oliver Kieselbach 1e4b33bb6b added agent changelog 2026-04-02 19:10:56 +02:00
Oliver Kieselbach 68669a3b79 fix phase timeline 2026-04-02 18:57:22 +02:00
Claude 62b3d18fcd Add MCP ops events tool, blob storage health check, fix endpoint policy
- Register global/ops-events GET endpoint in EndpointAccessPolicyCatalog
  as GlobalAdminOnly (critical fix: was fail-closed for all users)
- Add get_ops_events MCP tool for AI agent access to ops events
  with category filter and maxResults params
- Add blob storage health check in daily maintenance that verifies
  agent ZIP and bootstrap script availability via HEAD requests,
  records OpsEvent entries when missing or unreachable
- Add RecordBlobStorageMissing/Unreachable helpers to OpsEventService

https://claude.ai/code/session_01UCFrxsZ8QYjH7KEYmiGJ6c
2026-04-02 15:02:17 +00:00
Oliver Kieselbach aee031cef1 fix ui event timeline bug for whiteglove sessions 2026-04-02 16:56:10 +02:00
Claude 4c343c6e6a Update tsconfig.tsbuildinfo after TypeScript check
https://claude.ai/code/session_01UCFrxsZ8QYjH7KEYmiGJ6c
2026-04-02 13:23:40 +00:00
Claude 6f0052be20 Add OpsEvents table for vital infrastructure monitoring
Introduces a new OpsEvents Azure Table Storage table that records vital
infrastructure events (consent flows, maintenance runs, security blocks,
tenant offboarding) visible to Global Admins on the Ops dashboard.

Backend:
- IOpsEventRepository interface + TableOpsEventRepository (PartitionKey=Category)
- OpsEventService with typed helpers (fire-and-forget safe, never throws)
- GetOpsEventsFunction API endpoint (GET /api/global/ops-events)
- Maintenance cleanup with configurable retention (AdminConfig.OpsEventRetentionDays, default 90d)
- Integrated into: ConsentFunction, MaintenanceService, DeviceBlock, VersionBlock, TenantOffboard

Frontend:
- OpsEventsSection component with category filters, severity badges, detail modal
- Configurable retention days directly in the Ops page
- Updated admin/ops page with new events table above existing maintenance trigger

https://claude.ai/code/session_01UCFrxsZ8QYjH7KEYmiGJ6c
2026-04-02 13:23:07 +00:00
Oliver Kieselbach 4850c4856e orphan fix was to aggressiv 2026-04-02 13:01:36 +02:00
Oliver Kieselbach 9410cb7681 added logging for consent not working and unit test to prevent similar error in future 2026-04-02 01:31:47 +02:00
Oliver Kieselbach b62f9ee01b update architecture.md 2026-04-02 01:00:47 +02:00
Oliver Kieselbach d0122c136d final migration to tenant iolation middleware enforment 2026-04-02 00:27:21 +02:00
Oliver Kieselbach 021ac3d151 esp_resumed fix emit only for hybrid 2026-04-01 23:27:36 +02:00
Oliver Kieselbach 34773fba1f centralized tenant-isolation enforcement 2026-04-01 22:57:11 +02:00
Oliver Kieselbach f41f27e1a5 extended notifications with rule results 2026-04-01 20:28:57 +02:00
Oliver Kieselbach 686f9651a7 fix software report upsert 2026-04-01 18:40:22 +02:00
Oliver Kieselbach 601a1a8b36 added agent self update event 2026-04-01 18:11:21 +02:00
Oliver Kieselbach bdb77e025a fix agent version generation 2026-04-01 17:33:39 +02:00
Oliver Kieselbach 615f611b5c vul report support in whitglove 2026-04-01 16:14:22 +02:00
Oliver Kieselbach 16ea5749eb fix quick search 2026-04-01 15:58:12 +02:00
Oliver Kieselbach 9cee2ed9e9 fix cve correlation service and guid validation 2026-04-01 15:50:16 +02:00
Oliver Kieselbach cff85ab104 ux tuning 2026-04-01 14:29:33 +02:00
Oliver Kieselbach 1fda382488 fine tuning UX 2026-04-01 13:31:23 +02:00