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
Oliver Kieselbach
c4dabeeef4
fix CVE data sync and signalr join
2026-03-27 20:48:35 +01:00
Oliver Kieselbach
8a1c8a553c
fix timestamps in agent
2026-03-27 20:08:16 +01:00
Oliver Kieselbach
87ba9281f8
fix agent timestamps
2026-03-27 19:43:55 +01:00
Oliver Kieselbach
284cab5a24
check for unique rule id
2026-03-27 19:05:57 +01:00
Oliver Kieselbach
d9bfd0c9af
check for unique rule id
2026-03-27 19:05:29 +01:00
Oliver Kieselbach
769beaa14a
Refactorings for many reusables, API URL builder, CollectorBaseClass, CorrelationID Middleware, added Polly for external APIs
2026-03-27 11:14:38 +01:00
Oliver Kieselbach
738f524083
fix nullables
2026-03-27 09:35:14 +01:00
Oliver Kieselbach
905e42064b
fixed usings
2026-03-27 09:17:17 +01:00
Oliver Kieselbach
22215521f2
Merge pull request #31 from okieselbach/claude/data-access-layer-pyC29
...
Implement repository pattern for data access abstraction
2026-03-27 09:08:37 +01:00
Oliver Kieselbach
d38d5b5906
Merge branch 'main' of https://github.com/okieselbach/Autopilot-Monitor
2026-03-27 09:00:39 +01:00
Oliver Kieselbach
a2f14c1ee9
added IME process watcher
2026-03-27 09:00:33 +01:00
Claude
f5ec4247e9
Migrate FeedbackFunction + TenantOffboardFunction to repositories
...
- FeedbackFunction → IConfigRepository (feedback CRUD)
- TenantOffboardFunction → IMaintenanceRepository.DeleteAllTenantDataAsync()
Zero functions/services now create their own TableServiceClient.
All table access goes through repository interfaces.
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 07:38:19 +00:00
Claude
c8f308c60b
Add Feedback + TenantOffboard repository methods (implementations ready)
...
- IConfigRepository: Add GetFeedbackEntryAsync, SaveFeedbackEntryAsync, GetAllFeedbackEntriesAsync
- IMaintenanceRepository: Add DeleteAllTenantDataAsync
- TableConfigRepository: Implement feedback CRUD against PreviewConfig table
- TableMaintenanceRepository: Implement bulk tenant data deletion with batch deletes
Function migrations (FeedbackFunction, TenantOffboardFunction) in progress.
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 07:36:27 +00:00
Claude
878b762ca5
Consolidate all repositories to share single TableServiceClient
...
All 10 repository implementations now get their TableClient instances from
the central TableStorageService singleton instead of creating their own
TableServiceClient connections.
Before: 8 parallel TableServiceClient instances to same Storage Account
After: 1 shared TableServiceClient (+ 2 domain-specific functions)
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 07:29:56 +00:00
Claude
be6d7b21f8
Update migration plan — all 4 phases complete
...
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 07:22:09 +00:00
Claude
d9abf724a3
Migrate VulnerabilityCorrelationService to IVulnerabilityRepository — Phase 4 complete
...
- VulnerabilityCorrelationService: TableStorageService → IVulnerabilityRepository + ISessionRepository
- IAdminRepository: Add SetTenantMemberEnabledAsync
- TableAdminRepository, TenantAdminsService: Implement enable/disable via new method
- DataAccessServiceExtensions: Add IDeviceSecurityRepository registration
All 12 bypass services now use repository interfaces. Zero services create
their own TableServiceClient. Only repository implementations + TableStorageService
+ 2 domain-specific functions (Feedback, TenantOffboard) have direct table access.
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 07:21:37 +00:00
Claude
f6157ec8d0
TableAdminRepository refinement from background agent
...
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 07:18:27 +00:00
Claude
5cfed4e660
Phase 4 refinements: BootstrapSession, GlobalAdmin, Notification, SessionReport
...
Additional cleanup from background agents completing their migrations.
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 07:17:47 +00:00
Claude
5405a40a5a
Phase 4: Extract table storage from all bypass services into repositories
...
New repository implementations:
- TableConfigRepository: TenantConfig, AdminConfig, PreviewWhitelist, PreviewConfig
- TableBootstrapRepository: BootstrapSessions with dual-partition scheme
- TableNotificationRepository: GlobalNotifications + SessionReports
- TableDeviceSecurityRepository: BlockedDevices + BlockedVersions
Services migrated to use repository interfaces (keep caching + business logic):
- TenantConfigurationService → IConfigRepository
- AdminConfigurationService → IConfigRepository
- PreviewWhitelistService → IConfigRepository
- TelegramNotificationService → IConfigRepository
- GlobalAdminService → IAdminRepository
- TenantAdminsService → IAdminRepository
- BootstrapSessionService → IBootstrapRepository
- GlobalNotificationService → INotificationRepository
- SessionReportService → INotificationRepository
- BlockedDeviceService → IDeviceSecurityRepository
- BlockedVersionService → IDeviceSecurityRepository
TableAdminRepository rewritten with direct table CRUD (removed circular service deps).
IVulnerabilityRepository: Added GetCveCacheEntryAsync for VulnerabilityCorrelationService.
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 07:16:23 +00:00
Claude
6fec275d9e
Update IConfigRepository, IBootstrapRepository, INotificationRepository for Phase 4
...
- IConfigRepository: Add GetNotificationEmailAsync, SaveNotificationEmailAsync
- IBootstrapRepository: Add CleanupExpiredAsync
- INotificationRepository: Add DismissAllNotificationsAsync, GlobalNotification.Type/Href
Phase 4 agents running in background creating repository implementations.
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 07:10:45 +00:00
Claude
fdbbfcb1c6
Update migration plan — Phase 1-3 complete, zero direct TableStorageService consumers
...
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 06:57:06 +00:00
Claude
36b8594ff0
Migrate all Vulnerability functions, ApiKey, bypass services to DAL (Phase 3)
...
Vulnerability Functions (8 files):
- GetCpeMappings, SaveCustomCpeMapping, DeleteCustomCpeMapping → IVulnerabilityRepository
- GetUnmatchedSoftware, GetSoftwareInventory → IVulnerabilityRepository
- GetVulnerabilityReport → IVulnerabilityRepository + ISessionRepository
- TriggerVulnerabilityDataSync, VulnerabilityDataSync → IVulnerabilityRepository
Admin:
- ReseedFromGitHubFunction → IVulnerabilityRepository + IRuleRepository
- ApiKeyManagementFunction → IAdminRepository
- ApiKeyMiddleware → IAdminRepository
Bypass Services (removed TableStorageService dependency):
- BlockedDeviceService → own TableClient from IConfiguration
- BlockedVersionService → own TableClient from IConfiguration
- SessionReportService → own TableClient from IConfiguration
New: TableAdminRepository implementation for IAdminRepository
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 06:54:35 +00:00
Claude
782f81f1a6
Expand IVulnerabilityRepository, IAdminRepository, INotificationRepository for Phase 3
...
- IVulnerabilityRepository: Add CPE mapping CRUD, CVE cache, cross-tenant inventory
- IAdminRepository: Add GetAllApiKeysAsync, GetApiKeyAsync, IncrementApiKeyRequestCountAsync
- INotificationRepository: Add UpdateSessionReportAdminNoteAsync
- TableVulnerabilityRepository: Implement all new methods with direct table access
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 06:48:47 +00:00
Claude
799ec0a39b
Migrate GetPlatformStatsFunction to IMetricsRepository
...
Completes non-Vulnerability function migrations. Remaining 14 files still
using TableStorageService are: 8 Vulnerability functions (use GetTableClient),
ReseedFromGitHub, ApiKeyManagement, BlockedDevice/VersionService,
SessionReportService, ApiKeyMiddleware — these need interface additions first.
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 06:42:39 +00:00
Claude
b3187d9ef3
Migrate AuditLogs, RuleResults, Progress, Feedback, Auth functions to DAL
...
- GetAuditLogsFunction, GetGlobalAuditLogsFunction → IMaintenanceRepository
- GetRuleResultsFunction → IRuleRepository + IMaintenanceRepository + ISessionRepository
- ProgressPortalFunction, FeedbackFunction → ISessionRepository
- AuthFunction → IMetricsRepository
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 06:42:06 +00:00
Claude
6582faad17
Migrate GetGlobalGeographicMetricsFunction to DAL
...
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 06:38:20 +00:00
Claude
85cd9ae688
Migrate GetGeographicMetricsFunction to DAL
...
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 06:37:58 +00:00
Claude
ff6e43cecc
Migrate Geographic Location Sessions functions to DAL
...
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 06:37:41 +00:00
Claude
cae99b445f
Migrate GetAppMetrics, GetGlobalAppMetrics, TenantOffboard refinements
...
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 06:37:11 +00:00
Claude
d89e2a2ad1
Migrate TenantAdminManagement, TenantOffboard functions to DAL
...
https://claude.ai/code/session_01NHWJfPaa8TQHuPzMD7gG63
2026-03-27 06:36:38 +00:00