From f857f43df4c4df0914a2d2435c73191f052e8e64 Mon Sep 17 00:00:00 2001 From: kkb Date: Thu, 21 Sep 2023 18:58:32 +0200 Subject: [PATCH] initial upload --- .gitignore | 358 +++- insight.sln | 105 ++ .../Enums/CategoryEnum.cs | 14 + .../Enums/DispatchEnum.cs | 9 + .../Insight.Agent.Assets/Enums/StatusEnum.cs | 9 + .../Insight.Agent.Assets.csproj | 30 + .../Interfaces/IAgentMessageHandler.cs | 9 + .../Messages/Application/Application.cs | 41 + .../Messages/Authentication/Authentication.cs | 34 + .../Messages/Commands/Commands.cs | 10 + .../Messages/Console/ConsoleQuery.cs | 49 + .../Messages/Drive/Drive.cs | 103 ++ .../Messages/Event/Event.cs | 41 + .../Messages/IAgentMessage.cs | 7 + .../Messages/Interface/Interface.cs | 195 +++ .../Messages/Keepalive/Keepalive.cs | 10 + .../Messages/Mainboard/Mainboard.cs | 29 + .../Messages/Memory/Memory.cs | 67 + .../OperationSystem/OperationSystem.cs | 30 + .../Messages/Printer/Printer.cs | 30 + .../Messages/Processor/Processor.cs | 70 + .../Messages/Service/Service.cs | 64 + .../Messages/Session/Session.cs | 30 + .../Messages/Status/Status.cs | 17 + .../Messages/StoragePool/StoragePool.cs | 302 ++++ .../Messages/SystemInfo/SystemInfo.cs | 23 + .../Messages/Trap/Trap.cs | 29 + .../Messages/Update/Update.cs | 83 + .../Messages/User/User.cs | 73 + .../Messages/Videocard/Videocard.cs | 30 + .../VirtualMaschine/VirtualMaschine.cs | 265 +++ .../Insight.Agent.Assets/Models/Config.cs | 7 + .../Assemblies/Interop.WUApiLib.dll | Bin 0 -> 78336 bytes .../Insight.Agent/Constants/Appsettings.cs | 10 + src/Agent/Insight.Agent/Constants/Deploy.cs | 21 + .../Insight.Agent/Extensions/Configuration.cs | 14 + src/Agent/Insight.Agent/Extensions/Linux.cs | 32 + src/Agent/Insight.Agent/Insight.Agent.csproj | 53 + .../Insight.Agent/Internals/Extensions.cs | 69 + src/Agent/Insight.Agent/Internals/Helpers.cs | 44 + .../Insight.Agent/Network/AgentSession.cs | 57 + .../Network/Handlers/AuthenticationHandler.cs | 38 + .../Network/Handlers/ConsoleHandler.cs | 111 ++ .../Network/Handlers/DriveHandler.cs | 178 ++ .../Network/Handlers/InterfaceHandler.cs | 274 +++ .../Network/Handlers/MainboardHandler.cs | 86 + .../Network/Handlers/MemoryHandler.cs | 123 ++ .../Handlers/OperationSystemHandler.cs | 91 + .../Network/Handlers/PrinterHandler.cs | 60 + .../Network/Handlers/ProcessorHandler.cs | 143 ++ .../Network/Handlers/ServiceHandler.cs | 118 ++ .../Network/Handlers/SessionHandler.cs | 252 +++ .../Network/Handlers/SoftwareHandler.cs | 119 ++ .../Network/Handlers/StoragePoolHandler.cs | 308 ++++ .../Network/Handlers/SystemInfoHandler.cs | 175 ++ .../Network/Handlers/UpdateHandler.cs | 130 ++ .../Network/Handlers/UserHandler.cs | 188 ++ .../Network/Handlers/VideocardHandler.cs | 64 + .../Handlers/VirtualMaschineHandler.cs | 359 ++++ src/Agent/Insight.Agent/Program.cs | 97 ++ .../Properties/launchSettings.json | 14 + .../Services/CollectorService.cs | 17 + .../Insight.Agent/Services/Configurator.cs | 97 ++ .../Insight.Agent/Services/EventService.cs | 170 ++ .../Insight.Agent/Services/TrapService.cs | 200 +++ .../Insight.Agent/Services/UpdateService.cs | 360 ++++ .../Insight.Agent/Services/_Collector/_Os.cs | 106 ++ .../Services/_Collector/_Session.cs | 50 + .../appsettings.Development.json | 6 + src/Agent/Insight.Agent/appsettings.json | 6 + src/Api/Insight.Api/.config/dotnet-tools.json | 12 + src/Api/Insight.Api/Constants/Locations.cs | 9 + .../Controllers/AccountController.cs | 76 + .../Controllers/AgentController.cs | 44 + .../Controllers/CustomerController.cs | 44 + .../Insight.Api/Controllers/HostController.cs | 44 + .../Controllers/InventoryController.cs | 73 + .../Controllers/SetupController.cs | 30 + .../Controllers/TokenController.cs | 85 + .../Controllers/UpdateController.cs | 93 + .../Extensions/ServiceExtensions.cs | 59 + src/Api/Insight.Api/Insight.Api.csproj | 50 + .../Insight.Api/Models/RegistrationModel.cs | 23 + src/Api/Insight.Api/Program.cs | 99 ++ .../Properties/launchSettings.json | 19 + .../Insight.Api/appsettings.Development.json | 9 + src/Api/Insight.Api/appsettings.json | 9 + .../Insight.Domain/Constants/Configuration.cs | 13 + src/Core/Insight.Domain/Insight.Domain.csproj | 20 + src/Core/Insight.Domain/Models/Token.cs | 55 + src/Core/Insight.Domain/Models/Update.cs | 8 + .../Constants/Appsettings.cs | 14 + .../Constants/Monitoring.cs | 8 + .../Constants/Settings.cs | 7 + .../Insight.Infrastructure/Entities/Agent.cs | 62 + .../Entities/AgentLog.cs | 37 + .../Entities/Customer.cs | 29 + .../Insight.Infrastructure/Entities/Host.cs | 38 + .../Entities/HostApplication.cs | 40 + .../Entities/HostDrive.cs | 52 + .../Entities/HostHypervisor.cs | 188 ++ .../Entities/HostInterface.cs | 218 +++ .../Entities/HostLog.cs | 37 + .../Entities/HostLogMonitoring.cs | 43 + .../Entities/HostMainboard.cs | 40 + .../Entities/HostMemory.cs | 58 + .../Insight.Infrastructure/Entities/HostOs.cs | 40 + .../Entities/HostPrinter.cs | 40 + .../Entities/HostProcessor.cs | 70 + .../Entities/HostService.cs | 55 + .../Entities/HostSession.cs | 40 + .../Entities/HostStoragePool.cs | 207 +++ .../Entities/HostSystem.cs | 34 + .../Entities/HostUpdate.cs | 61 + .../Entities/HostUser.cs | 120 ++ .../Entities/HostVideocard.cs | 40 + .../Entities/HostVolume.cs | 76 + .../Entities/Identity.cs | 99 ++ .../Extensions/HttpRequestExtensions.cs | 47 + .../Extensions/HttpResponseExtensions.cs | 17 + .../Extensions/MongoCollectionExtensions.cs | 83 + .../Extensions/MongoDatabaseExtensions.cs | 57 + .../Extensions/ServiceExtensions.cs | 263 +++ .../Insight.Infrastructure.csproj | 31 + .../Models/Pagination.cs | 49 + .../Models/TokenOptions.cs | 18 + .../Services/AccountService.cs | 36 + .../Services/AgentService.cs | 36 + .../Services/AuthenticatorService.cs | 112 ++ .../Services/CustomerService.cs | 36 + .../Services/HostService.cs | 36 + .../Services/IdentityService.cs | 138 ++ .../Services/InventoryService.cs | 36 + .../Services/TokenService.cs | 149 ++ .../Insight.Server/Constants/Appsettings.cs | 14 + src/Server/Insight.Server/Extensions/Async.cs | 53 + .../Extensions/ConfigurationExtensions.cs | 14 + .../Insight.Server/Insight.Server.csproj | 71 + .../Insight.Server/Models/MonitorMessage.cs | 27 + .../Insight.Server/Network/AgentSession.cs | 89 + .../Network/Handlers/Agent/AgentHandler.cs | 162 ++ .../Network/Handlers/Agent/ConsoleHandler.cs | 50 + .../Network/Handlers/Agent/DriveHandler.cs | 145 ++ .../Network/Handlers/Agent/EventHandler.cs | 266 +++ .../Handlers/Agent/InterfaceHandler.cs | 299 ++++ .../Handlers/Agent/MainboardHandler.cs | 51 + .../Network/Handlers/Agent/MemoryHandler.cs | 83 + .../Handlers/Agent/OperationSystemHandler.cs | 51 + .../Network/Handlers/Agent/PrinterHandler.cs | 76 + .../Handlers/Agent/ProcessorHandler.cs | 87 + .../Network/Handlers/Agent/ServiceHandler.cs | 81 + .../Network/Handlers/Agent/SessionHandler.cs | 77 + .../Network/Handlers/Agent/SoftwareHandler.cs | 78 + .../Handlers/Agent/StoragePoolHandler.cs | 253 +++ .../Handlers/Agent/SystemInfoHandler.cs | 49 + .../Network/Handlers/Agent/TrapHandler.cs | 289 ++++ .../Network/Handlers/Agent/UpdateHandler.cs | 121 ++ .../Network/Handlers/Agent/UserHandler.cs | 188 ++ .../Handlers/Agent/VideocardHandler.cs | 77 + .../Handlers/Agent/VirtualMaschineHandler.cs | 173 ++ .../Handlers/Web/ConsoleProxyHandler.cs | 103 ++ .../Insight.Server/Network/WebSession.cs | 55 + src/Server/Insight.Server/Program.cs | 135 ++ .../Properties/launchSettings.json | 14 + .../Services/DispatchService.cs | 158 ++ .../Insight.Server/Services/JobService.cs | 79 + .../appsettings.Development.json | 12 + src/Server/Insight.Server/appsettings.json | 12 + .../Insight.Setup.Windows/Constants/Deploy.cs | 49 + .../Insight.Setup.Windows.csproj | 44 + src/Setup/Insight.Setup.Windows/Program.cs | 58 + .../Properties/launchSettings.json | 31 + .../Services/Deployment.cs | 477 +++++ .../Services/SetupService.cs | 247 +++ .../appsettings.Development.json | 3 + .../Insight.Setup.Windows/appsettings.json | 3 + .../Insight.Updater/Constants/Deploy.cs | 21 + .../Insight.Updater/Insight.Updater.csproj | 52 + src/Updater/Insight.Updater/Program.cs | 57 + .../Properties/launchSettings.json | 13 + .../Insight.Updater/Services/UpdateService.cs | 360 ++++ .../appsettings.Development.json | 3 + src/Updater/Insight.Updater/appsettings.json | 3 + .../Insight.Web.Assets.csproj | 18 + .../Interfaces/IWebMessageHandler.cs | 9 + .../Messages/Host/ConsoleProxy.cs | 43 + .../Messages/IWebMessage.cs | 7 + src/Web/Insight.Web/.config/dotnet-tools.json | 12 + src/Web/Insight.Web/App.razor | 14 + .../Components/Cards/InfoCard.razor | 47 + .../Components/Cards/KeyValueCard.razor | 57 + .../Components/Containers/BaseContainer.razor | 51 + .../Containers/BaseContainer.razor.cs | 74 + .../Containers/TableContainer.razor | 66 + .../Containers/TableContainer.razor.cs | 194 +++ .../Components/Dialogs/ActionDialog.razor | 25 + .../Components/Dialogs/ActionDialog.razor.cs | 30 + .../Components/Dialogs/ChatDialog.razor | 154 ++ .../Components/Dialogs/ChatDialog.razor.cs | 197 +++ .../Components/Layouts/LoginLayout.razor | 8 + .../Components/Layouts/MainLayout.razor | 82 + .../Components/Navbars/Account.razor | 7 + .../Components/Navbars/Account.razor.cs | 28 + .../Components/Navbars/Customer.razor | 13 + .../Components/Navbars/Customer.razor.cs | 62 + .../Insight.Web/Components/Navbars/Host.razor | 60 + .../Components/Navbars/Host.razor.cs | 69 + .../Insight.Web/Components/Navbars/Main.razor | 112 ++ .../Components/Navbars/Main.razor.cs | 136 ++ .../Components/Navbars/NavSwitch.razor | 29 + .../Components/Navbars/NavSwitch.razor.cs | 59 + .../Components/Providers/ChatProvider.razor | 49 + .../Components/Providers/DrawerProvider.razor | 17 + .../Providers/ProfileProvider.razor | 70 + .../Providers/SessionProvider.razor | 14 + .../Components/Providers/ThemeProvider.razor | 90 + src/Web/Insight.Web/Constants/Events.cs | 24 + src/Web/Insight.Web/Constants/Global.cs | 7 + src/Web/Insight.Web/Constants/Navigation.cs | 747 ++++++++ src/Web/Insight.Web/Constants/Notification.cs | 39 + src/Web/Insight.Web/Constants/Themes.cs | 186 ++ .../Extensions/NavigationManagerExtensions.cs | 90 + .../Extensions/ServiceExtensions.cs | 45 + .../Extensions/StringExtensions.cs | 31 + src/Web/Insight.Web/Insight.Web.csproj | 54 + .../Middleware/IdentityMiddleware.cs | 295 ++++ .../Models/Account/ChangePasswordModel.cs | 18 + .../Insight.Web/Models/Account/LoginModel.cs | 18 + src/Web/Insight.Web/Models/ChatMessage.cs | 12 + src/Web/Insight.Web/Models/ChatSession.cs | 32 + src/Web/Insight.Web/Models/ChatUser.cs | 30 + src/Web/Insight.Web/Models/LocalStorage.cs | 9 + src/Web/Insight.Web/Models/SessionState.cs | 13 + src/Web/Insight.Web/Models/SessionStorage.cs | 18 + .../Network/Handlers/ConsoleHandler.cs | 24 + src/Web/Insight.Web/Network/WebSession.cs | 56 + src/Web/Insight.Web/Pages/Account/Login.razor | 130 ++ .../Insight.Web/Pages/Account/Login.razor.cs | 76 + .../Insight.Web/Pages/Account/LoginTFA.razor | 32 + .../Pages/Account/LoginTFA.razor.cs | 29 + .../Insight.Web/Pages/Account/Profile.razor | 30 + .../Pages/Account/Profile.razor.cs | 40 + .../Pages/Account/ProfilePasswordDialog.razor | 55 + .../Account/ProfilePasswordDialog.razor.cs | 30 + .../Account/ProfileTwoFactorDialog.razor | 221 +++ .../Account/ProfileTwoFactorDialog.razor.cs | 217 +++ src/Web/Insight.Web/Pages/Index.razor | 9 + src/Web/Insight.Web/Pages/Internal/Seed.razor | 1 + .../Insight.Web/Pages/Internal/Seed.razor.cs | 28 + .../Insight.Web/Pages/Internal/Sessions.razor | 50 + .../Pages/Internal/Sessions.razor.cs | 14 + .../Inventory/Hardware/Drives/Hosts.razor | 66 + .../Inventory/Hardware/Drives/Hosts.razor.cs | 142 ++ .../Inventory/Hardware/Drives/Index.razor | 58 + .../Inventory/Hardware/Drives/Index.razor.cs | 126 ++ .../Inventory/Hardware/Mainboards/Hosts.razor | 49 + .../Hardware/Mainboards/Hosts.razor.cs | 135 ++ .../Inventory/Hardware/Mainboards/Index.razor | 39 + .../Hardware/Mainboards/Index.razor.cs | 119 ++ .../Inventory/Hardware/Memory/Hosts.razor | 49 + .../Inventory/Hardware/Memory/Hosts.razor.cs | 136 ++ .../Inventory/Hardware/Memory/Index.razor | 39 + .../Inventory/Hardware/Memory/Index.razor.cs | 119 ++ .../Inventory/Hardware/Processors/Hosts.razor | 49 + .../Hardware/Processors/Hosts.razor.cs | 136 ++ .../Inventory/Hardware/Processors/Index.razor | 39 + .../Hardware/Processors/Index.razor.cs | 120 ++ .../Inventory/Hardware/Videocards/Hosts.razor | 49 + .../Hardware/Videocards/Hosts.razor.cs | 137 ++ .../Inventory/Hardware/Videocards/Index.razor | 31 + .../Hardware/Videocards/Index.razor.cs | 113 ++ .../Inventory/Network/Addresses/Hosts.razor | 51 + .../Network/Addresses/Hosts.razor.cs | 139 ++ .../Inventory/Network/Addresses/Index.razor | 32 + .../Network/Addresses/Index.razor.cs | 111 ++ .../Inventory/Network/Gateways/Hosts.razor | 44 + .../Inventory/Network/Gateways/Hosts.razor.cs | 135 ++ .../Inventory/Network/Gateways/Index.razor | 32 + .../Inventory/Network/Gateways/Index.razor.cs | 111 ++ .../Inventory/Network/Interfaces/Index.razor | 92 + .../Network/Interfaces/Index.razor.cs | 145 ++ .../Inventory/Network/Nameservers/Hosts.razor | 44 + .../Network/Nameservers/Hosts.razor.cs | 132 ++ .../Inventory/Network/Nameservers/Index.razor | 32 + .../Network/Nameservers/Index.razor.cs | 111 ++ .../Inventory/Network/Routes/Hosts.razor | 67 + .../Inventory/Network/Routes/Hosts.razor.cs | 144 ++ .../Inventory/Network/Routes/Index.razor | 32 + .../Inventory/Network/Routes/Index.razor.cs | 111 ++ .../Inventory/Systems/Groups/Hosts.razor | 49 + .../Inventory/Systems/Groups/Hosts.razor.cs | 138 ++ .../Inventory/Systems/Groups/Index.razor | 32 + .../Inventory/Systems/Groups/Index.razor.cs | 111 ++ .../Pages/Inventory/Systems/Os/Guests.razor | 43 + .../Inventory/Systems/Os/Guests.razor.cs | 133 ++ .../Pages/Inventory/Systems/Os/Hosts.razor | 49 + .../Pages/Inventory/Systems/Os/Hosts.razor.cs | 138 ++ .../Pages/Inventory/Systems/Os/Index.razor | 42 + .../Pages/Inventory/Systems/Os/Index.razor.cs | 133 ++ .../Inventory/Systems/Printers/Index.razor | 65 + .../Inventory/Systems/Printers/Index.razor.cs | 138 ++ .../Inventory/Systems/Services/Hosts.razor | 76 + .../Inventory/Systems/Services/Hosts.razor.cs | 159 ++ .../Inventory/Systems/Services/Index.razor | 40 + .../Inventory/Systems/Services/Index.razor.cs | 120 ++ .../Inventory/Systems/Sessions/Index.razor | 83 + .../Inventory/Systems/Sessions/Index.razor.cs | 141 ++ .../Inventory/Systems/Software/Hosts.razor | 49 + .../Inventory/Systems/Software/Hosts.razor.cs | 140 ++ .../Inventory/Systems/Software/Index.razor | 40 + .../Inventory/Systems/Software/Index.razor.cs | 119 ++ .../Systems/StoragePools/Index.razor | 108 ++ .../Systems/StoragePools/Index.razor.cs | 151 ++ .../Inventory/Systems/Updates/Hosts.razor | 63 + .../Inventory/Systems/Updates/Hosts.razor.cs | 138 ++ .../Inventory/Systems/Updates/Index.razor | 32 + .../Inventory/Systems/Updates/Index.razor.cs | 119 ++ .../Pages/Inventory/Systems/Users/Hosts.razor | 70 + .../Inventory/Systems/Users/Hosts.razor.cs | 152 ++ .../Pages/Inventory/Systems/Users/Index.razor | 31 + .../Inventory/Systems/Users/Index.razor.cs | 111 ++ .../Systems/VirtualMaschines/Index.razor | 120 ++ .../Systems/VirtualMaschines/Index.razor.cs | 162 ++ .../Inventory/Systems/Volumes/Index.razor | 110 ++ .../Inventory/Systems/Volumes/Index.razor.cs | 146 ++ .../Accounts/AccountCreateDialog.razor | 79 + .../Accounts/AccountCreateDialog.razor.cs | 79 + .../Accounts/AccountDeleteDialog.razor | 36 + .../Accounts/AccountDeleteDialog.razor.cs | 50 + .../Accounts/AccountEditDialog.razor | 36 + .../Accounts/AccountEditDialog.razor.cs | 54 + .../Pages/Management/Accounts/Details.razor | 35 + .../Management/Accounts/Details.razor.cs | 70 + .../Pages/Management/Accounts/Index.razor | 73 + .../Pages/Management/Accounts/Index.razor.cs | 85 + .../Management/Agents/AgentDeleteDialog.razor | 36 + .../Agents/AgentDeleteDialog.razor.cs | 59 + .../Management/Agents/AgentHostDialog.razor | 49 + .../Agents/AgentHostDialog.razor.cs | 50 + .../Pages/Management/Agents/Details.razor | 84 + .../Pages/Management/Agents/Details.razor.cs | 75 + .../Pages/Management/Agents/HostAssign.razor | 55 + .../Management/Agents/HostAssign.razor.cs | 134 ++ .../Pages/Management/Agents/Index.razor | 88 + .../Pages/Management/Agents/Index.razor.cs | 225 +++ .../Pages/Management/Agents/Logs.razor | 114 ++ .../Pages/Management/Agents/Logs.razor.cs | 247 +++ .../Customers/CustomerCreateDialog.razor | 38 + .../Customers/CustomerCreateDialog.razor.cs | 52 + .../Customers/CustomerDeleteDialog.razor | 37 + .../Customers/CustomerDeleteDialog.razor.cs | 50 + .../Customers/CustomerEditDialog.razor | 47 + .../Customers/CustomerEditDialog.razor.cs | 56 + .../Pages/Management/Customers/Details.razor | 20 + .../Management/Customers/Details.razor.cs | 59 + .../Pages/Management/Customers/Hosts.razor | 71 + .../Pages/Management/Customers/Hosts.razor.cs | 173 ++ .../Management/Customers/HostsAssign.razor | 70 + .../Management/Customers/HostsAssign.razor.cs | 165 ++ .../Pages/Management/Customers/Index.razor | 71 + .../Pages/Management/Customers/Index.razor.cs | 124 ++ .../Pages/Management/HostGroups/Index.razor | 143 ++ .../Management/HostGroups/Index.razor.cs | 422 +++++ .../Hosts/Actions/Console/Index.razor | 29 + .../Hosts/Actions/Console/Index.razor.cs | 109 ++ .../Pages/Management/Hosts/AgentAssign.razor | 36 + .../Management/Hosts/AgentAssign.razor.cs | 130 ++ .../Management/Hosts/CustomerAssign.razor | 44 + .../Management/Hosts/CustomerAssign.razor.cs | 136 ++ .../Pages/Management/Hosts/Details.razor | 65 + .../Pages/Management/Hosts/Details.razor.cs | 92 + .../Hosts/Hardware/Drives/Index.razor | 73 + .../Hosts/Hardware/Drives/Index.razor.cs | 113 ++ .../Hosts/Hardware/Mainboard/Details.razor | 26 + .../Hosts/Hardware/Mainboard/Details.razor.cs | 65 + .../Hosts/Hardware/Memory/Index.razor | 80 + .../Hosts/Hardware/Memory/Index.razor.cs | 122 ++ .../Hosts/Hardware/Processors/Details.razor | 53 + .../Hardware/Processors/Details.razor.cs | 65 + .../Hosts/Hardware/Videocards/Index.razor | 54 + .../Hosts/Hardware/Videocards/Index.razor.cs | 110 ++ .../Management/Hosts/HostAgentDialog.razor | 49 + .../Management/Hosts/HostAgentDialog.razor.cs | 51 + .../Management/Hosts/HostCreateDialog.razor | 38 + .../Hosts/HostCreateDialog.razor.cs | 57 + .../Management/Hosts/HostCustomerDialog.razor | 49 + .../Hosts/HostCustomerDialog.razor.cs | 52 + .../Management/Hosts/HostDeleteDialog.razor | 37 + .../Hosts/HostDeleteDialog.razor.cs | 49 + .../Management/Hosts/HostEditDialog.razor | 46 + .../Management/Hosts/HostEditDialog.razor.cs | 54 + .../Pages/Management/Hosts/Index.razor | 95 + .../Pages/Management/Hosts/Index.razor.cs | 298 ++++ .../Pages/Management/Hosts/Logs.razor | 121 ++ .../Pages/Management/Hosts/Logs.razor.cs | 232 +++ .../Hosts/Network/Addresses/Index.razor | 42 + .../Hosts/Network/Addresses/Index.razor.cs | 108 ++ .../Hosts/Network/Gateways/Index.razor | 34 + .../Hosts/Network/Gateways/Index.razor.cs | 105 ++ .../Hosts/Network/Interfaces/Details.razor | 98 ++ .../Hosts/Network/Interfaces/Details.razor.cs | 85 + .../Hosts/Network/Interfaces/Index.razor | 91 + .../Hosts/Network/Interfaces/Index.razor.cs | 117 ++ .../Hosts/Network/Nameservers/Index.razor | 34 + .../Hosts/Network/Nameservers/Index.razor.cs | 105 ++ .../Hosts/Network/Routes/Index.razor | 58 + .../Hosts/Network/Routes/Index.razor.cs | 114 ++ .../Hosts/Systems/Groups/Index.razor | 36 + .../Hosts/Systems/Groups/Index.razor.cs | 104 ++ .../Management/Hosts/Systems/Os/Details.razor | 33 + .../Hosts/Systems/Os/Details.razor.cs | 69 + .../Hosts/Systems/Printers/Index.razor | 45 + .../Hosts/Systems/Printers/Index.razor.cs | 107 ++ .../Hosts/Systems/Services/Index.razor | 72 + .../Hosts/Systems/Services/Index.razor.cs | 122 ++ .../Hosts/Systems/Sessions/Index.razor | 53 + .../Hosts/Systems/Sessions/Index.razor.cs | 110 ++ .../Hosts/Systems/Software/Index.razor | 56 + .../Hosts/Systems/Software/Index.razor.cs | 110 ++ .../Hosts/Systems/StoragePools/Details.razor | 87 + .../Systems/StoragePools/Details.razor.cs | 87 + .../Hosts/Systems/StoragePools/Index.razor | 94 + .../Hosts/Systems/StoragePools/Index.razor.cs | 121 ++ .../StoragePools/PhysicalDisks/Details.razor | 89 + .../PhysicalDisks/Details.razor.cs | 108 ++ .../StoragePools/PhysicalDisks/Index.razor | 87 + .../StoragePools/PhysicalDisks/Index.razor.cs | 131 ++ .../StoragePools/VirtualDisks/Details.razor | 107 ++ .../VirtualDisks/Details.razor.cs | 108 ++ .../StoragePools/VirtualDisks/Index.razor | 113 ++ .../StoragePools/VirtualDisks/Index.razor.cs | 138 ++ .../Hosts/Systems/Updates/DetailsDialog.razor | 34 + .../Systems/Updates/DetailsDialog.razor.cs | 9 + .../Hosts/Systems/Updates/Installed.razor | 59 + .../Hosts/Systems/Updates/Installed.razor.cs | 120 ++ .../Hosts/Systems/Updates/Pending.razor | 61 + .../Hosts/Systems/Updates/Pending.razor.cs | 123 ++ .../Hosts/Systems/Users/Details.razor | 50 + .../Hosts/Systems/Users/Details.razor.cs | 84 + .../Hosts/Systems/Users/Index.razor | 77 + .../Hosts/Systems/Users/Index.razor.cs | 113 ++ .../Systems/VirtualMaschines/Details.razor | 215 +++ .../Systems/VirtualMaschines/Details.razor.cs | 151 ++ .../Systems/VirtualMaschines/Index.razor | 94 + .../Systems/VirtualMaschines/Index.razor.cs | 182 ++ .../VirtualMaschines/Snapshots/Details.razor | 91 + .../Snapshots/Details.razor.cs | 113 ++ .../Hosts/Systems/Volumes/Details.razor | 84 + .../Hosts/Systems/Volumes/Details.razor.cs | 83 + .../Hosts/Systems/Volumes/Index.razor | 104 ++ .../Hosts/Systems/Volumes/Index.razor.cs | 113 ++ .../Insight.Web/Pages/Management/Index.razor | 5 + .../Pages/Management/Index.razor.cs | 14 + .../Pages/Management/Overview/Index.razor | 27 + .../Pages/Management/Overview/Index.razor.cs | 37 + .../Insight.Web/Pages/Monitoring/Index.razor | 5 + .../Pages/Monitoring/Index.razor.cs | 15 + .../Monitoring/Maintenance/Drives/Index.razor | 87 + .../Maintenance/Drives/Index.razor.cs | 145 ++ .../Monitoring/Maintenance/Guests/Index.razor | 82 + .../Maintenance/Guests/Index.razor.cs | 128 ++ .../Pages/Monitoring/Maintenance/Index.razor | 26 + .../Monitoring/Maintenance/Index.razor.cs | 152 ++ .../Maintenance/Snapshots/Index.razor | 73 + .../Maintenance/Snapshots/Index.razor.cs | 151 ++ .../Maintenance/Storagepools/Index.razor | 65 + .../Maintenance/Storagepools/Index.razor.cs | 129 ++ .../Maintenance/Updates/Index.razor | 43 + .../Maintenance/Updates/Index.razor.cs | 116 ++ .../Maintenance/Volumes/Index.razor | 61 + .../Maintenance/Volumes/Index.razor.cs | 154 ++ src/Web/Insight.Web/Pages/_Host.cshtml | 42 + src/Web/Insight.Web/Program.cs | 122 ++ .../Properties/launchSettings.json | 19 + src/Web/Insight.Web/Services/ChatService.cs | 155 ++ src/Web/Insight.Web/Services/ServiceHost.cs | 30 + .../Insight.Web/Services/SessionHandler.cs | 135 ++ src/Web/Insight.Web/Services/SessionPool.cs | 69 + src/Web/Insight.Web/_Imports.razor | 20 + .../Insight.Web/appsettings.Development.json | 8 + src/Web/Insight.Web/appsettings.json | 7 + src/Web/Insight.Web/wwwroot/css/fonts.css | 144 ++ src/Web/Insight.Web/wwwroot/css/insight.css | 38 + src/Web/Insight.Web/wwwroot/favicon.png | Bin 0 -> 1148 bytes ...ek-ext_greek_cyrillic-ext_cyrillic-100.eot | Bin 0 -> 57043 bytes ...ek-ext_greek_cyrillic-ext_cyrillic-100.svg | 313 ++++ ...ek-ext_greek_cyrillic-ext_cyrillic-100.ttf | Bin 0 -> 129724 bytes ...k-ext_greek_cyrillic-ext_cyrillic-100.woff | Bin 0 -> 64084 bytes ...-ext_greek_cyrillic-ext_cyrillic-100.woff2 | Bin 0 -> 49464 bytes ..._greek_cyrillic-ext_cyrillic-100italic.eot | Bin 0 -> 61496 bytes ..._greek_cyrillic-ext_cyrillic-100italic.svg | 332 ++++ ..._greek_cyrillic-ext_cyrillic-100italic.ttf | Bin 0 -> 132696 bytes ...greek_cyrillic-ext_cyrillic-100italic.woff | Bin 0 -> 68952 bytes ...reek_cyrillic-ext_cyrillic-100italic.woff2 | Bin 0 -> 53188 bytes ...ek-ext_greek_cyrillic-ext_cyrillic-300.eot | Bin 0 -> 58287 bytes ...ek-ext_greek_cyrillic-ext_cyrillic-300.svg | 312 ++++ ...ek-ext_greek_cyrillic-ext_cyrillic-300.ttf | Bin 0 -> 128256 bytes ...k-ext_greek_cyrillic-ext_cyrillic-300.woff | Bin 0 -> 65164 bytes ...-ext_greek_cyrillic-ext_cyrillic-300.woff2 | Bin 0 -> 50216 bytes ..._greek_cyrillic-ext_cyrillic-300italic.eot | Bin 0 -> 63651 bytes ..._greek_cyrillic-ext_cyrillic-300italic.svg | 329 ++++ ..._greek_cyrillic-ext_cyrillic-300italic.ttf | Bin 0 -> 132640 bytes ...greek_cyrillic-ext_cyrillic-300italic.woff | Bin 0 -> 70652 bytes ...reek_cyrillic-ext_cyrillic-300italic.woff2 | Bin 0 -> 54924 bytes ...ek-ext_greek_cyrillic-ext_cyrillic-500.eot | Bin 0 -> 59273 bytes ...ek-ext_greek_cyrillic-ext_cyrillic-500.svg | 305 ++++ ...ek-ext_greek_cyrillic-ext_cyrillic-500.ttf | Bin 0 -> 129768 bytes ...k-ext_greek_cyrillic-ext_cyrillic-500.woff | Bin 0 -> 65756 bytes ...-ext_greek_cyrillic-ext_cyrillic-500.woff2 | Bin 0 -> 50900 bytes ..._greek_cyrillic-ext_cyrillic-500italic.eot | Bin 0 -> 64244 bytes ..._greek_cyrillic-ext_cyrillic-500italic.svg | 326 ++++ ..._greek_cyrillic-ext_cyrillic-500italic.ttf | Bin 0 -> 133528 bytes ...greek_cyrillic-ext_cyrillic-500italic.woff | Bin 0 -> 70960 bytes ...reek_cyrillic-ext_cyrillic-500italic.woff2 | Bin 0 -> 55056 bytes ...ek-ext_greek_cyrillic-ext_cyrillic-700.eot | Bin 0 -> 58765 bytes ...ek-ext_greek_cyrillic-ext_cyrillic-700.svg | 309 ++++ ...ek-ext_greek_cyrillic-ext_cyrillic-700.ttf | Bin 0 -> 128676 bytes ...k-ext_greek_cyrillic-ext_cyrillic-700.woff | Bin 0 -> 65556 bytes ...-ext_greek_cyrillic-ext_cyrillic-700.woff2 | Bin 0 -> 50340 bytes ..._greek_cyrillic-ext_cyrillic-700italic.eot | Bin 0 -> 63418 bytes ..._greek_cyrillic-ext_cyrillic-700italic.svg | 325 ++++ ..._greek_cyrillic-ext_cyrillic-700italic.ttf | Bin 0 -> 132124 bytes ...greek_cyrillic-ext_cyrillic-700italic.woff | Bin 0 -> 70060 bytes ...reek_cyrillic-ext_cyrillic-700italic.woff2 | Bin 0 -> 54776 bytes ...ek-ext_greek_cyrillic-ext_cyrillic-900.eot | Bin 0 -> 58762 bytes ...ek-ext_greek_cyrillic-ext_cyrillic-900.svg | 302 ++++ ...ek-ext_greek_cyrillic-ext_cyrillic-900.ttf | Bin 0 -> 129228 bytes ...k-ext_greek_cyrillic-ext_cyrillic-900.woff | Bin 0 -> 65688 bytes ...-ext_greek_cyrillic-ext_cyrillic-900.woff2 | Bin 0 -> 50660 bytes ..._greek_cyrillic-ext_cyrillic-900italic.eot | Bin 0 -> 64863 bytes ..._greek_cyrillic-ext_cyrillic-900italic.svg | 324 ++++ ..._greek_cyrillic-ext_cyrillic-900italic.ttf | Bin 0 -> 134040 bytes ...greek_cyrillic-ext_cyrillic-900italic.woff | Bin 0 -> 71648 bytes ...reek_cyrillic-ext_cyrillic-900italic.woff2 | Bin 0 -> 55884 bytes ...ext_greek_cyrillic-ext_cyrillic-italic.eot | Bin 0 -> 63048 bytes ...ext_greek_cyrillic-ext_cyrillic-italic.svg | 323 ++++ ...ext_greek_cyrillic-ext_cyrillic-italic.ttf | Bin 0 -> 130872 bytes ...xt_greek_cyrillic-ext_cyrillic-italic.woff | Bin 0 -> 69672 bytes ...t_greek_cyrillic-ext_cyrillic-italic.woff2 | Bin 0 -> 54324 bytes ...xt_greek_cyrillic-ext_cyrillic-regular.eot | Bin 0 -> 58591 bytes ...xt_greek_cyrillic-ext_cyrillic-regular.svg | 308 ++++ ...xt_greek_cyrillic-ext_cyrillic-regular.ttf | Bin 0 -> 129584 bytes ...t_greek_cyrillic-ext_cyrillic-regular.woff | Bin 0 -> 65456 bytes ..._greek_cyrillic-ext_cyrillic-regular.woff2 | Bin 0 -> 50476 bytes src/Web/Insight.Web/wwwroot/js/functions.js | 26 + src/Web/Insight.Web/wwwroot/js/interop.js | 13 + src/Web/Insight.Web/wwwroot/js/particles.js | 1541 +++++++++++++++++ .../Insight.Web/wwwroot/js/particles.min.js | 9 + .../wwwroot/js/particlesjs-config.json | 110 ++ src/Web/Insight.Web/wwwroot/js/qrcode.js | 614 +++++++ src/Web/Insight.Web/wwwroot/js/qrcode.min.js | 1 + .../wwwroot/media/chat_message.mp3 | Bin 0 -> 16344 bytes .../wwwroot/media/chat_user_online.mp3 | Bin 0 -> 83619 bytes 553 files changed, 46169 insertions(+), 13 deletions(-) create mode 100644 insight.sln create mode 100644 src/Agent/Insight.Agent.Assets/Enums/CategoryEnum.cs create mode 100644 src/Agent/Insight.Agent.Assets/Enums/DispatchEnum.cs create mode 100644 src/Agent/Insight.Agent.Assets/Enums/StatusEnum.cs create mode 100644 src/Agent/Insight.Agent.Assets/Insight.Agent.Assets.csproj create mode 100644 src/Agent/Insight.Agent.Assets/Interfaces/IAgentMessageHandler.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Application/Application.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Authentication/Authentication.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Commands/Commands.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Console/ConsoleQuery.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Drive/Drive.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Event/Event.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/IAgentMessage.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Interface/Interface.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Keepalive/Keepalive.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Mainboard/Mainboard.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Memory/Memory.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/OperationSystem/OperationSystem.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Printer/Printer.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Processor/Processor.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Service/Service.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Session/Session.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Status/Status.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/StoragePool/StoragePool.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/SystemInfo/SystemInfo.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Trap/Trap.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Update/Update.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/User/User.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/Videocard/Videocard.cs create mode 100644 src/Agent/Insight.Agent.Assets/Messages/VirtualMaschine/VirtualMaschine.cs create mode 100644 src/Agent/Insight.Agent.Assets/Models/Config.cs create mode 100644 src/Agent/Insight.Agent/Assemblies/Interop.WUApiLib.dll create mode 100644 src/Agent/Insight.Agent/Constants/Appsettings.cs create mode 100644 src/Agent/Insight.Agent/Constants/Deploy.cs create mode 100644 src/Agent/Insight.Agent/Extensions/Configuration.cs create mode 100644 src/Agent/Insight.Agent/Extensions/Linux.cs create mode 100644 src/Agent/Insight.Agent/Insight.Agent.csproj create mode 100644 src/Agent/Insight.Agent/Internals/Extensions.cs create mode 100644 src/Agent/Insight.Agent/Internals/Helpers.cs create mode 100644 src/Agent/Insight.Agent/Network/AgentSession.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/AuthenticationHandler.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/ConsoleHandler.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/DriveHandler.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/InterfaceHandler.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/MainboardHandler.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/MemoryHandler.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/OperationSystemHandler.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/PrinterHandler.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/ProcessorHandler.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/ServiceHandler.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/SessionHandler.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/SoftwareHandler.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/StoragePoolHandler.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/SystemInfoHandler.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/UpdateHandler.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/UserHandler.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/VideocardHandler.cs create mode 100644 src/Agent/Insight.Agent/Network/Handlers/VirtualMaschineHandler.cs create mode 100644 src/Agent/Insight.Agent/Program.cs create mode 100644 src/Agent/Insight.Agent/Properties/launchSettings.json create mode 100644 src/Agent/Insight.Agent/Services/CollectorService.cs create mode 100644 src/Agent/Insight.Agent/Services/Configurator.cs create mode 100644 src/Agent/Insight.Agent/Services/EventService.cs create mode 100644 src/Agent/Insight.Agent/Services/TrapService.cs create mode 100644 src/Agent/Insight.Agent/Services/UpdateService.cs create mode 100644 src/Agent/Insight.Agent/Services/_Collector/_Os.cs create mode 100644 src/Agent/Insight.Agent/Services/_Collector/_Session.cs create mode 100644 src/Agent/Insight.Agent/appsettings.Development.json create mode 100644 src/Agent/Insight.Agent/appsettings.json create mode 100644 src/Api/Insight.Api/.config/dotnet-tools.json create mode 100644 src/Api/Insight.Api/Constants/Locations.cs create mode 100644 src/Api/Insight.Api/Controllers/AccountController.cs create mode 100644 src/Api/Insight.Api/Controllers/AgentController.cs create mode 100644 src/Api/Insight.Api/Controllers/CustomerController.cs create mode 100644 src/Api/Insight.Api/Controllers/HostController.cs create mode 100644 src/Api/Insight.Api/Controllers/InventoryController.cs create mode 100644 src/Api/Insight.Api/Controllers/SetupController.cs create mode 100644 src/Api/Insight.Api/Controllers/TokenController.cs create mode 100644 src/Api/Insight.Api/Controllers/UpdateController.cs create mode 100644 src/Api/Insight.Api/Extensions/ServiceExtensions.cs create mode 100644 src/Api/Insight.Api/Insight.Api.csproj create mode 100644 src/Api/Insight.Api/Models/RegistrationModel.cs create mode 100644 src/Api/Insight.Api/Program.cs create mode 100644 src/Api/Insight.Api/Properties/launchSettings.json create mode 100644 src/Api/Insight.Api/appsettings.Development.json create mode 100644 src/Api/Insight.Api/appsettings.json create mode 100644 src/Core/Insight.Domain/Constants/Configuration.cs create mode 100644 src/Core/Insight.Domain/Insight.Domain.csproj create mode 100644 src/Core/Insight.Domain/Models/Token.cs create mode 100644 src/Core/Insight.Domain/Models/Update.cs create mode 100644 src/Core/Insight.Infrastructure/Constants/Appsettings.cs create mode 100644 src/Core/Insight.Infrastructure/Constants/Monitoring.cs create mode 100644 src/Core/Insight.Infrastructure/Constants/Settings.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/Agent.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/AgentLog.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/Customer.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/Host.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostApplication.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostDrive.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostHypervisor.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostInterface.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostLog.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostLogMonitoring.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostMainboard.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostMemory.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostOs.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostPrinter.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostProcessor.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostService.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostSession.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostStoragePool.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostSystem.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostUpdate.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostUser.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostVideocard.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/HostVolume.cs create mode 100644 src/Core/Insight.Infrastructure/Entities/Identity.cs create mode 100644 src/Core/Insight.Infrastructure/Extensions/HttpRequestExtensions.cs create mode 100644 src/Core/Insight.Infrastructure/Extensions/HttpResponseExtensions.cs create mode 100644 src/Core/Insight.Infrastructure/Extensions/MongoCollectionExtensions.cs create mode 100644 src/Core/Insight.Infrastructure/Extensions/MongoDatabaseExtensions.cs create mode 100644 src/Core/Insight.Infrastructure/Extensions/ServiceExtensions.cs create mode 100644 src/Core/Insight.Infrastructure/Insight.Infrastructure.csproj create mode 100644 src/Core/Insight.Infrastructure/Models/Pagination.cs create mode 100644 src/Core/Insight.Infrastructure/Models/TokenOptions.cs create mode 100644 src/Core/Insight.Infrastructure/Services/AccountService.cs create mode 100644 src/Core/Insight.Infrastructure/Services/AgentService.cs create mode 100644 src/Core/Insight.Infrastructure/Services/AuthenticatorService.cs create mode 100644 src/Core/Insight.Infrastructure/Services/CustomerService.cs create mode 100644 src/Core/Insight.Infrastructure/Services/HostService.cs create mode 100644 src/Core/Insight.Infrastructure/Services/IdentityService.cs create mode 100644 src/Core/Insight.Infrastructure/Services/InventoryService.cs create mode 100644 src/Core/Insight.Infrastructure/Services/TokenService.cs create mode 100644 src/Server/Insight.Server/Constants/Appsettings.cs create mode 100644 src/Server/Insight.Server/Extensions/Async.cs create mode 100644 src/Server/Insight.Server/Extensions/ConfigurationExtensions.cs create mode 100644 src/Server/Insight.Server/Insight.Server.csproj create mode 100644 src/Server/Insight.Server/Models/MonitorMessage.cs create mode 100644 src/Server/Insight.Server/Network/AgentSession.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/AgentHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/ConsoleHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/DriveHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/EventHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/InterfaceHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/MainboardHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/MemoryHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/OperationSystemHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/PrinterHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/ProcessorHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/ServiceHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/SessionHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/SoftwareHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/StoragePoolHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/SystemInfoHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/TrapHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/UpdateHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/UserHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/VideocardHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Agent/VirtualMaschineHandler.cs create mode 100644 src/Server/Insight.Server/Network/Handlers/Web/ConsoleProxyHandler.cs create mode 100644 src/Server/Insight.Server/Network/WebSession.cs create mode 100644 src/Server/Insight.Server/Program.cs create mode 100644 src/Server/Insight.Server/Properties/launchSettings.json create mode 100644 src/Server/Insight.Server/Services/DispatchService.cs create mode 100644 src/Server/Insight.Server/Services/JobService.cs create mode 100644 src/Server/Insight.Server/appsettings.Development.json create mode 100644 src/Server/Insight.Server/appsettings.json create mode 100644 src/Setup/Insight.Setup.Windows/Constants/Deploy.cs create mode 100644 src/Setup/Insight.Setup.Windows/Insight.Setup.Windows.csproj create mode 100644 src/Setup/Insight.Setup.Windows/Program.cs create mode 100644 src/Setup/Insight.Setup.Windows/Properties/launchSettings.json create mode 100644 src/Setup/Insight.Setup.Windows/Services/Deployment.cs create mode 100644 src/Setup/Insight.Setup.Windows/Services/SetupService.cs create mode 100644 src/Setup/Insight.Setup.Windows/appsettings.Development.json create mode 100644 src/Setup/Insight.Setup.Windows/appsettings.json create mode 100644 src/Updater/Insight.Updater/Constants/Deploy.cs create mode 100644 src/Updater/Insight.Updater/Insight.Updater.csproj create mode 100644 src/Updater/Insight.Updater/Program.cs create mode 100644 src/Updater/Insight.Updater/Properties/launchSettings.json create mode 100644 src/Updater/Insight.Updater/Services/UpdateService.cs create mode 100644 src/Updater/Insight.Updater/appsettings.Development.json create mode 100644 src/Updater/Insight.Updater/appsettings.json create mode 100644 src/Web/Insight.Web.Assets/Insight.Web.Assets.csproj create mode 100644 src/Web/Insight.Web.Assets/Interfaces/IWebMessageHandler.cs create mode 100644 src/Web/Insight.Web.Assets/Messages/Host/ConsoleProxy.cs create mode 100644 src/Web/Insight.Web.Assets/Messages/IWebMessage.cs create mode 100644 src/Web/Insight.Web/.config/dotnet-tools.json create mode 100644 src/Web/Insight.Web/App.razor create mode 100644 src/Web/Insight.Web/Components/Cards/InfoCard.razor create mode 100644 src/Web/Insight.Web/Components/Cards/KeyValueCard.razor create mode 100644 src/Web/Insight.Web/Components/Containers/BaseContainer.razor create mode 100644 src/Web/Insight.Web/Components/Containers/BaseContainer.razor.cs create mode 100644 src/Web/Insight.Web/Components/Containers/TableContainer.razor create mode 100644 src/Web/Insight.Web/Components/Containers/TableContainer.razor.cs create mode 100644 src/Web/Insight.Web/Components/Dialogs/ActionDialog.razor create mode 100644 src/Web/Insight.Web/Components/Dialogs/ActionDialog.razor.cs create mode 100644 src/Web/Insight.Web/Components/Dialogs/ChatDialog.razor create mode 100644 src/Web/Insight.Web/Components/Dialogs/ChatDialog.razor.cs create mode 100644 src/Web/Insight.Web/Components/Layouts/LoginLayout.razor create mode 100644 src/Web/Insight.Web/Components/Layouts/MainLayout.razor create mode 100644 src/Web/Insight.Web/Components/Navbars/Account.razor create mode 100644 src/Web/Insight.Web/Components/Navbars/Account.razor.cs create mode 100644 src/Web/Insight.Web/Components/Navbars/Customer.razor create mode 100644 src/Web/Insight.Web/Components/Navbars/Customer.razor.cs create mode 100644 src/Web/Insight.Web/Components/Navbars/Host.razor create mode 100644 src/Web/Insight.Web/Components/Navbars/Host.razor.cs create mode 100644 src/Web/Insight.Web/Components/Navbars/Main.razor create mode 100644 src/Web/Insight.Web/Components/Navbars/Main.razor.cs create mode 100644 src/Web/Insight.Web/Components/Navbars/NavSwitch.razor create mode 100644 src/Web/Insight.Web/Components/Navbars/NavSwitch.razor.cs create mode 100644 src/Web/Insight.Web/Components/Providers/ChatProvider.razor create mode 100644 src/Web/Insight.Web/Components/Providers/DrawerProvider.razor create mode 100644 src/Web/Insight.Web/Components/Providers/ProfileProvider.razor create mode 100644 src/Web/Insight.Web/Components/Providers/SessionProvider.razor create mode 100644 src/Web/Insight.Web/Components/Providers/ThemeProvider.razor create mode 100644 src/Web/Insight.Web/Constants/Events.cs create mode 100644 src/Web/Insight.Web/Constants/Global.cs create mode 100644 src/Web/Insight.Web/Constants/Navigation.cs create mode 100644 src/Web/Insight.Web/Constants/Notification.cs create mode 100644 src/Web/Insight.Web/Constants/Themes.cs create mode 100644 src/Web/Insight.Web/Extensions/NavigationManagerExtensions.cs create mode 100644 src/Web/Insight.Web/Extensions/ServiceExtensions.cs create mode 100644 src/Web/Insight.Web/Extensions/StringExtensions.cs create mode 100644 src/Web/Insight.Web/Insight.Web.csproj create mode 100644 src/Web/Insight.Web/Middleware/IdentityMiddleware.cs create mode 100644 src/Web/Insight.Web/Models/Account/ChangePasswordModel.cs create mode 100644 src/Web/Insight.Web/Models/Account/LoginModel.cs create mode 100644 src/Web/Insight.Web/Models/ChatMessage.cs create mode 100644 src/Web/Insight.Web/Models/ChatSession.cs create mode 100644 src/Web/Insight.Web/Models/ChatUser.cs create mode 100644 src/Web/Insight.Web/Models/LocalStorage.cs create mode 100644 src/Web/Insight.Web/Models/SessionState.cs create mode 100644 src/Web/Insight.Web/Models/SessionStorage.cs create mode 100644 src/Web/Insight.Web/Network/Handlers/ConsoleHandler.cs create mode 100644 src/Web/Insight.Web/Network/WebSession.cs create mode 100644 src/Web/Insight.Web/Pages/Account/Login.razor create mode 100644 src/Web/Insight.Web/Pages/Account/Login.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Account/LoginTFA.razor create mode 100644 src/Web/Insight.Web/Pages/Account/LoginTFA.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Account/Profile.razor create mode 100644 src/Web/Insight.Web/Pages/Account/Profile.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Account/ProfilePasswordDialog.razor create mode 100644 src/Web/Insight.Web/Pages/Account/ProfilePasswordDialog.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Account/ProfileTwoFactorDialog.razor create mode 100644 src/Web/Insight.Web/Pages/Account/ProfileTwoFactorDialog.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Internal/Seed.razor create mode 100644 src/Web/Insight.Web/Pages/Internal/Seed.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Internal/Sessions.razor create mode 100644 src/Web/Insight.Web/Pages/Internal/Sessions.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Drives/Hosts.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Drives/Hosts.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Drives/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Drives/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Mainboards/Hosts.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Mainboards/Hosts.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Mainboards/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Mainboards/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Memory/Hosts.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Memory/Hosts.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Memory/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Memory/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Processors/Hosts.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Processors/Hosts.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Processors/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Processors/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Videocards/Hosts.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Videocards/Hosts.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Videocards/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Hardware/Videocards/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Addresses/Hosts.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Addresses/Hosts.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Addresses/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Addresses/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Gateways/Hosts.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Gateways/Hosts.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Gateways/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Gateways/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Interfaces/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Interfaces/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Nameservers/Hosts.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Nameservers/Hosts.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Nameservers/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Nameservers/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Routes/Hosts.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Routes/Hosts.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Routes/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Network/Routes/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Groups/Hosts.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Groups/Hosts.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Groups/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Groups/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Os/Guests.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Os/Guests.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Os/Hosts.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Os/Hosts.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Os/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Os/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Printers/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Printers/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Services/Hosts.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Services/Hosts.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Services/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Services/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Sessions/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Sessions/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Software/Hosts.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Software/Hosts.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Software/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Software/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/StoragePools/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/StoragePools/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Updates/Hosts.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Updates/Hosts.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Updates/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Updates/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Users/Hosts.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Users/Hosts.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Users/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Users/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/VirtualMaschines/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/VirtualMaschines/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Volumes/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Inventory/Systems/Volumes/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Accounts/AccountCreateDialog.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Accounts/AccountCreateDialog.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Accounts/AccountDeleteDialog.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Accounts/AccountDeleteDialog.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Accounts/AccountEditDialog.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Accounts/AccountEditDialog.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Accounts/Details.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Accounts/Details.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Accounts/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Accounts/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Agents/AgentDeleteDialog.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Agents/AgentDeleteDialog.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Agents/AgentHostDialog.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Agents/AgentHostDialog.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Agents/Details.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Agents/Details.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Agents/HostAssign.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Agents/HostAssign.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Agents/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Agents/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Agents/Logs.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Agents/Logs.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Customers/CustomerCreateDialog.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Customers/CustomerCreateDialog.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Customers/CustomerDeleteDialog.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Customers/CustomerDeleteDialog.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Customers/CustomerEditDialog.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Customers/CustomerEditDialog.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Customers/Details.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Customers/Details.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Customers/Hosts.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Customers/Hosts.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Customers/HostsAssign.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Customers/HostsAssign.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Customers/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Customers/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/HostGroups/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/HostGroups/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Actions/Console/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Actions/Console/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/AgentAssign.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/AgentAssign.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/CustomerAssign.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/CustomerAssign.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Details.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Details.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Hardware/Drives/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Hardware/Drives/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Hardware/Mainboard/Details.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Hardware/Mainboard/Details.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Hardware/Memory/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Hardware/Memory/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Hardware/Processors/Details.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Hardware/Processors/Details.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Hardware/Videocards/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Hardware/Videocards/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/HostAgentDialog.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/HostAgentDialog.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/HostCreateDialog.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/HostCreateDialog.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/HostCustomerDialog.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/HostCustomerDialog.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/HostDeleteDialog.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/HostDeleteDialog.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/HostEditDialog.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/HostEditDialog.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Logs.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Logs.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Network/Addresses/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Network/Addresses/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Network/Gateways/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Network/Gateways/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Network/Interfaces/Details.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Network/Interfaces/Details.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Network/Interfaces/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Network/Interfaces/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Network/Nameservers/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Network/Nameservers/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Network/Routes/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Network/Routes/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Groups/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Groups/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Os/Details.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Os/Details.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Printers/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Printers/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Services/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Services/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Sessions/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Sessions/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Software/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Software/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/StoragePools/Details.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/StoragePools/Details.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/StoragePools/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/StoragePools/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/StoragePools/PhysicalDisks/Details.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/StoragePools/PhysicalDisks/Details.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/StoragePools/PhysicalDisks/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/StoragePools/PhysicalDisks/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/StoragePools/VirtualDisks/Details.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/StoragePools/VirtualDisks/Details.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/StoragePools/VirtualDisks/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/StoragePools/VirtualDisks/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Updates/DetailsDialog.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Updates/DetailsDialog.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Updates/Installed.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Updates/Installed.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Updates/Pending.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Updates/Pending.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Users/Details.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Users/Details.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Users/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Users/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/VirtualMaschines/Details.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/VirtualMaschines/Details.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/VirtualMaschines/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/VirtualMaschines/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/VirtualMaschines/Snapshots/Details.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/VirtualMaschines/Snapshots/Details.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Volumes/Details.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Volumes/Details.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Volumes/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Hosts/Systems/Volumes/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Management/Overview/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Management/Overview/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Monitoring/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Monitoring/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Monitoring/Maintenance/Drives/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Monitoring/Maintenance/Drives/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Monitoring/Maintenance/Guests/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Monitoring/Maintenance/Guests/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Monitoring/Maintenance/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Monitoring/Maintenance/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Monitoring/Maintenance/Snapshots/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Monitoring/Maintenance/Snapshots/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Monitoring/Maintenance/Storagepools/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Monitoring/Maintenance/Storagepools/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Monitoring/Maintenance/Updates/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Monitoring/Maintenance/Updates/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/Monitoring/Maintenance/Volumes/Index.razor create mode 100644 src/Web/Insight.Web/Pages/Monitoring/Maintenance/Volumes/Index.razor.cs create mode 100644 src/Web/Insight.Web/Pages/_Host.cshtml create mode 100644 src/Web/Insight.Web/Program.cs create mode 100644 src/Web/Insight.Web/Properties/launchSettings.json create mode 100644 src/Web/Insight.Web/Services/ChatService.cs create mode 100644 src/Web/Insight.Web/Services/ServiceHost.cs create mode 100644 src/Web/Insight.Web/Services/SessionHandler.cs create mode 100644 src/Web/Insight.Web/Services/SessionPool.cs create mode 100644 src/Web/Insight.Web/_Imports.razor create mode 100644 src/Web/Insight.Web/appsettings.Development.json create mode 100644 src/Web/Insight.Web/appsettings.json create mode 100644 src/Web/Insight.Web/wwwroot/css/fonts.css create mode 100644 src/Web/Insight.Web/wwwroot/css/insight.css create mode 100644 src/Web/Insight.Web/wwwroot/favicon.png create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-100.eot create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-100.svg create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-100.ttf create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-100.woff create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-100.woff2 create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-100italic.eot create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-100italic.svg create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-100italic.ttf create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-100italic.woff create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-100italic.woff2 create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300.eot create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300.svg create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300.ttf create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300.woff create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300.woff2 create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300italic.eot create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300italic.svg create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300italic.ttf create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300italic.woff create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-300italic.woff2 create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500.eot create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500.svg create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500.ttf create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500.woff create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500.woff2 create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500italic.eot create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500italic.svg create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500italic.ttf create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500italic.woff create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-500italic.woff2 create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700.eot create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700.svg create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700.ttf create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700.woff create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700.woff2 create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700italic.eot create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700italic.svg create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700italic.ttf create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700italic.woff create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-700italic.woff2 create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-900.eot create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-900.svg create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-900.ttf create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-900.woff create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-900.woff2 create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-900italic.eot create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-900italic.svg create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-900italic.ttf create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-900italic.woff create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-900italic.woff2 create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.eot create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.svg create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.ttf create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.woff create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-italic.woff2 create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.svg create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.ttf create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff create mode 100644 src/Web/Insight.Web/wwwroot/fonts/roboto-v30-vietnamese_latin-ext_latin_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff2 create mode 100644 src/Web/Insight.Web/wwwroot/js/functions.js create mode 100644 src/Web/Insight.Web/wwwroot/js/interop.js create mode 100644 src/Web/Insight.Web/wwwroot/js/particles.js create mode 100644 src/Web/Insight.Web/wwwroot/js/particles.min.js create mode 100644 src/Web/Insight.Web/wwwroot/js/particlesjs-config.json create mode 100644 src/Web/Insight.Web/wwwroot/js/qrcode.js create mode 100644 src/Web/Insight.Web/wwwroot/js/qrcode.min.js create mode 100644 src/Web/Insight.Web/wwwroot/media/chat_message.mp3 create mode 100644 src/Web/Insight.Web/wwwroot/media/chat_user_online.mp3 diff --git a/.gitignore b/.gitignore index 0385ff2..9491a2f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,19 +1,21 @@ -*.swp -*.*~ -project.lock.json -.DS_Store -*.pyc -nupkg/ - -# Visual Studio Code -.vscode +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # User-specific files +*.rsuser *.suo *.user *.userosscache *.sln.docstates +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + # Build results [Dd]ebug/ [Dd]ebugPublic/ @@ -21,11 +23,341 @@ nupkg/ [Rr]eleases/ x64/ x86/ -build/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ bld/ [Bb]in/ [Oo]bj/ [Oo]ut/ -msbuild.log -msbuild.err -msbuild.wrn +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd \ No newline at end of file diff --git a/insight.sln b/insight.sln new file mode 100644 index 0000000..c6e0266 --- /dev/null +++ b/insight.sln @@ -0,0 +1,105 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.1.32210.238 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{88B03853-2215-4E52-8986-0E76602E5F21}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Server", "Server", "{038C3821-E554-496D-B585-A3BC193B7913}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Agent", "Agent", "{140F73DD-29D3-4C44-809B-5B470880AA0D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Setup", "Setup", "{15D04093-4974-4B2F-AE8A-F3721F31767A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Updater", "Updater", "{F2D241DB-7692-46DB-8A6A-958B365DAAF8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Insight.Infrastructure", "src\Core\Insight.Infrastructure\Insight.Infrastructure.csproj", "{3DC54216-3D5A-4DCE-9B1E-3D1AF2DE8C2C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Web", "Web", "{3F000016-069D-477E-ACA3-F643880B57E8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Insight.Domain", "src\Core\Insight.Domain\Insight.Domain.csproj", "{02A50CD8-40DF-4329-89A9-961ED78EDAA6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Insight.Setup.Windows", "src\Setup\Insight.Setup.Windows\Insight.Setup.Windows.csproj", "{CA99B8CF-520A-4B48-ACCE-0A301C35A7FE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Insight.Web", "src\Web\Insight.Web\Insight.Web.csproj", "{375EF474-512A-4410-86CF-46974E07C1F7}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Api", "Api", "{35BA5DCB-BECC-4F51-8DD0-694C555D205A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Insight.Api", "src\Api\Insight.Api\Insight.Api.csproj", "{EF3188D7-338D-43DA-BF6B-D26E5BDAC3A6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Insight.Server", "src\Server\Insight.Server\Insight.Server.csproj", "{1E75F7E9-E6AA-44E7-A2F3-DB4CA85E0118}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Insight.Updater", "src\Updater\Insight.Updater\Insight.Updater.csproj", "{4875D70F-A96B-4EBA-99BE-218886D29BEB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Insight.Web.Assets", "src\Web\Insight.Web.Assets\Insight.Web.Assets.csproj", "{EBB8A2A8-453B-4867-A8E2-072530391DD0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Insight.Agent", "src\Agent\Insight.Agent\Insight.Agent.csproj", "{2A391CA2-F96B-4DB7-80AA-0668A5141640}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Insight.Agent.Assets", "src\Agent\Insight.Agent.Assets\Insight.Agent.Assets.csproj", "{4C2B66EA-4EE1-47BF-BAEE-DDBAF6FCB324}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3DC54216-3D5A-4DCE-9B1E-3D1AF2DE8C2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3DC54216-3D5A-4DCE-9B1E-3D1AF2DE8C2C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3DC54216-3D5A-4DCE-9B1E-3D1AF2DE8C2C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3DC54216-3D5A-4DCE-9B1E-3D1AF2DE8C2C}.Release|Any CPU.Build.0 = Release|Any CPU + {02A50CD8-40DF-4329-89A9-961ED78EDAA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {02A50CD8-40DF-4329-89A9-961ED78EDAA6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {02A50CD8-40DF-4329-89A9-961ED78EDAA6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {02A50CD8-40DF-4329-89A9-961ED78EDAA6}.Release|Any CPU.Build.0 = Release|Any CPU + {CA99B8CF-520A-4B48-ACCE-0A301C35A7FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA99B8CF-520A-4B48-ACCE-0A301C35A7FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA99B8CF-520A-4B48-ACCE-0A301C35A7FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CA99B8CF-520A-4B48-ACCE-0A301C35A7FE}.Release|Any CPU.Build.0 = Release|Any CPU + {375EF474-512A-4410-86CF-46974E07C1F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {375EF474-512A-4410-86CF-46974E07C1F7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {375EF474-512A-4410-86CF-46974E07C1F7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {375EF474-512A-4410-86CF-46974E07C1F7}.Release|Any CPU.Build.0 = Release|Any CPU + {EF3188D7-338D-43DA-BF6B-D26E5BDAC3A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF3188D7-338D-43DA-BF6B-D26E5BDAC3A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF3188D7-338D-43DA-BF6B-D26E5BDAC3A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF3188D7-338D-43DA-BF6B-D26E5BDAC3A6}.Release|Any CPU.Build.0 = Release|Any CPU + {1E75F7E9-E6AA-44E7-A2F3-DB4CA85E0118}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E75F7E9-E6AA-44E7-A2F3-DB4CA85E0118}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1E75F7E9-E6AA-44E7-A2F3-DB4CA85E0118}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1E75F7E9-E6AA-44E7-A2F3-DB4CA85E0118}.Release|Any CPU.Build.0 = Release|Any CPU + {4875D70F-A96B-4EBA-99BE-218886D29BEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4875D70F-A96B-4EBA-99BE-218886D29BEB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4875D70F-A96B-4EBA-99BE-218886D29BEB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4875D70F-A96B-4EBA-99BE-218886D29BEB}.Release|Any CPU.Build.0 = Release|Any CPU + {EBB8A2A8-453B-4867-A8E2-072530391DD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EBB8A2A8-453B-4867-A8E2-072530391DD0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EBB8A2A8-453B-4867-A8E2-072530391DD0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EBB8A2A8-453B-4867-A8E2-072530391DD0}.Release|Any CPU.Build.0 = Release|Any CPU + {2A391CA2-F96B-4DB7-80AA-0668A5141640}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A391CA2-F96B-4DB7-80AA-0668A5141640}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A391CA2-F96B-4DB7-80AA-0668A5141640}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A391CA2-F96B-4DB7-80AA-0668A5141640}.Release|Any CPU.Build.0 = Release|Any CPU + {4C2B66EA-4EE1-47BF-BAEE-DDBAF6FCB324}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C2B66EA-4EE1-47BF-BAEE-DDBAF6FCB324}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C2B66EA-4EE1-47BF-BAEE-DDBAF6FCB324}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C2B66EA-4EE1-47BF-BAEE-DDBAF6FCB324}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {3DC54216-3D5A-4DCE-9B1E-3D1AF2DE8C2C} = {88B03853-2215-4E52-8986-0E76602E5F21} + {02A50CD8-40DF-4329-89A9-961ED78EDAA6} = {88B03853-2215-4E52-8986-0E76602E5F21} + {CA99B8CF-520A-4B48-ACCE-0A301C35A7FE} = {15D04093-4974-4B2F-AE8A-F3721F31767A} + {375EF474-512A-4410-86CF-46974E07C1F7} = {3F000016-069D-477E-ACA3-F643880B57E8} + {EF3188D7-338D-43DA-BF6B-D26E5BDAC3A6} = {35BA5DCB-BECC-4F51-8DD0-694C555D205A} + {1E75F7E9-E6AA-44E7-A2F3-DB4CA85E0118} = {038C3821-E554-496D-B585-A3BC193B7913} + {4875D70F-A96B-4EBA-99BE-218886D29BEB} = {F2D241DB-7692-46DB-8A6A-958B365DAAF8} + {EBB8A2A8-453B-4867-A8E2-072530391DD0} = {3F000016-069D-477E-ACA3-F643880B57E8} + {2A391CA2-F96B-4DB7-80AA-0668A5141640} = {140F73DD-29D3-4C44-809B-5B470880AA0D} + {4C2B66EA-4EE1-47BF-BAEE-DDBAF6FCB324} = {140F73DD-29D3-4C44-809B-5B470880AA0D} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {F376A326-7590-4E7E-AB9B-76CED8527AB0} + EndGlobalSection +EndGlobal diff --git a/src/Agent/Insight.Agent.Assets/Enums/CategoryEnum.cs b/src/Agent/Insight.Agent.Assets/Enums/CategoryEnum.cs new file mode 100644 index 0000000..5ba8cb9 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Enums/CategoryEnum.cs @@ -0,0 +1,14 @@ +namespace Insight.Agent.Enums +{ + public enum CategoryEnum + { + Network = 1, + System = 2, + Application = 3, + Security = 4, + Monitoring = 5, + Task = 6, + Printer = 7, + RDP = 8 + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Enums/DispatchEnum.cs b/src/Agent/Insight.Agent.Assets/Enums/DispatchEnum.cs new file mode 100644 index 0000000..2d824d4 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Enums/DispatchEnum.cs @@ -0,0 +1,9 @@ +namespace Insight.Agent.Enums +{ + public enum DispatchEnum + { + Pending = 1, + Failure = 2, + Success = 3, + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Enums/StatusEnum.cs b/src/Agent/Insight.Agent.Assets/Enums/StatusEnum.cs new file mode 100644 index 0000000..49b8e7d --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Enums/StatusEnum.cs @@ -0,0 +1,9 @@ +namespace Insight.Agent.Enums +{ + public enum StatusEnum + { + Information = 1, + Warning = 2, + Error = 3 + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Insight.Agent.Assets.csproj b/src/Agent/Insight.Agent.Assets/Insight.Agent.Assets.csproj new file mode 100644 index 0000000..540ca66 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Insight.Agent.Assets.csproj @@ -0,0 +1,30 @@ + + + + net7.0 + true + enable + Insight.Agent.Assets + Insight.Agent + Insight + 2023.9.14.0 + + + + none + + + + none + + + + + + + + + + + + diff --git a/src/Agent/Insight.Agent.Assets/Interfaces/IAgentMessageHandler.cs b/src/Agent/Insight.Agent.Assets/Interfaces/IAgentMessageHandler.cs new file mode 100644 index 0000000..a9e69a6 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Interfaces/IAgentMessageHandler.cs @@ -0,0 +1,9 @@ +using Insight.Agent.Messages; + +namespace Insight.Agent.Interfaces +{ + public partial interface IAgentMessageHandler + { + ValueTask HandleAsync(TSender sender, TMessage message, CancellationToken cancellationToken) where TMessage : IAgentMessage; + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Application/Application.cs b/src/Agent/Insight.Agent.Assets/Messages/Application/Application.cs new file mode 100644 index 0000000..ba3ad5c --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Application/Application.cs @@ -0,0 +1,41 @@ +using MemoryPack; +using System.Runtime.InteropServices; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(120, typeof(Application))] + [MemoryPackUnion(121, typeof(ApplicationList))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class Application : IAgentMessage + { + [MemoryPackOrder(0)] + public string? Name { get; set; } + + [MemoryPackOrder(1)] + public string? Publisher { get; set; } + + [MemoryPackOrder(2)] + public string? Version { get; set; } + + [MemoryPackOrder(3)] + public string? Location { get; set; } + + [MemoryPackOrder(4)] + public string? Source { get; set; } + + [MemoryPackOrder(5)] + public string? Uninstall { get; set; } + + [MemoryPackOrder(6)] + public DateTime? InstallDate { get; set; } + + [MemoryPackOrder(7)] + public Architecture? Architecture { get; set; } + } + + [MemoryPackable(GenerateType.Collection)] + public partial class ApplicationList : List, IAgentMessage { } + +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Authentication/Authentication.cs b/src/Agent/Insight.Agent.Assets/Messages/Authentication/Authentication.cs new file mode 100644 index 0000000..84406f4 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Authentication/Authentication.cs @@ -0,0 +1,34 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(1, typeof(Authentication))] + [MemoryPackUnion(2, typeof(AuthenticationRequest))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class Authentication : IAgentMessage + { + [MemoryPackOrder(0)] + public PlatformType? Platform { get; set; } + + [MemoryPackOrder(1)] + public Guid Serial { get; set; } + + [MemoryPackOrder(2)] + public Version? Version { get; set; } + + [MemoryPackOrder(3)] + public string? Hostname { get; set; } + + public enum PlatformType + { + Unknown = 0, + Windows = 1, + Unix = 2 + } + } + + [MemoryPackable] + public partial class AuthenticationRequest : IAgentMessage { } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Commands/Commands.cs b/src/Agent/Insight.Agent.Assets/Messages/Commands/Commands.cs new file mode 100644 index 0000000..b231232 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Commands/Commands.cs @@ -0,0 +1,10 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(2000, typeof(GetInventory))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class GetInventory : IAgentMessage { } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Console/ConsoleQuery.cs b/src/Agent/Insight.Agent.Assets/Messages/Console/ConsoleQuery.cs new file mode 100644 index 0000000..369304c --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Console/ConsoleQuery.cs @@ -0,0 +1,49 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(1000, typeof(ConsoleQuery))] + [MemoryPackUnion(1001, typeof(ConsoleQueryRequest))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class ConsoleQuery : IAgentMessage + { + [MemoryPackOrder(0)] + public string? Id { get; set; } + + [MemoryPackOrder(1)] + public string? HostId { get; set; } + + [MemoryPackOrder(2)] + public string? Query { get; set; } + + [MemoryPackOrder(3)] + public string? Data { get; set; } + + [MemoryPackOrder(4)] + public string? Errors { get; set; } + + [MemoryPackOrder(5)] + public bool IsString { get; set; } + + [MemoryPackOrder(6)] + public bool IsArray { get; set; } + + [MemoryPackOrder(7)] + public bool HadErrors { get; set; } + } + + [MemoryPackable] + public partial class ConsoleQueryRequest : IAgentMessage + { + [MemoryPackOrder(0)] + public string? Id { get; set; } + + [MemoryPackOrder(1)] + public string? HostId { get; set; } + + [MemoryPackOrder(2)] + public string? Query { get; set; } + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Drive/Drive.cs b/src/Agent/Insight.Agent.Assets/Messages/Drive/Drive.cs new file mode 100644 index 0000000..5a2f966 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Drive/Drive.cs @@ -0,0 +1,103 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(50, typeof(Drive))] + [MemoryPackUnion(51, typeof(DriveList))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class Drive : IAgentMessage + { + [MemoryPackOrder(0)] + public uint? Index { get; set; } + + [MemoryPackOrder(1)] + public string? Id { get; set; } + + [MemoryPackOrder(2)] + public string? Name { get; set; } + + [MemoryPackOrder(3)] + public string? Manufacturer { get; set; } + + [MemoryPackOrder(4)] + public string? SerialNumber { get; set; } + + [MemoryPackOrder(5)] + public ulong? Size { get; set; } + + [MemoryPackOrder(6)] + public string? Status { get; set; } + + [MemoryPackOrder(7)] + public string? InterfaceType { get; set; } + + [MemoryPackOrder(8)] + public string? FirmwareRevision { get; set; } + + [MemoryPackOrder(9)] + public string? PNPDeviceID { get; set; } + + [MemoryPackOrder(10)] + public List? Volumes { get; set; } + } + + [MemoryPackable(GenerateType.Collection)] + public partial class DriveList : List, IAgentMessage { } + + [MemoryPackable] + public partial class Volume : IAgentMessage + { + [MemoryPackOrder(0)] + public uint? Index { get; set; } + + [MemoryPackOrder(1)] + public string? Id { get; set; } + + [MemoryPackOrder(2)] + public string? Name { get; set; } + + [MemoryPackOrder(3)] + public string? SerialNumber { get; set; } + + [MemoryPackOrder(4)] + public ulong? Size { get; set; } + + [MemoryPackOrder(5)] + public ulong? FreeSpace { get; set; } + + [MemoryPackOrder(6)] + public string? Type { get; set; } + + [MemoryPackOrder(7)] + public string? FileSystem { get; set; } + + [MemoryPackOrder(8)] + public bool? Compressed { get; set; } + + [MemoryPackOrder(9)] + public bool? Bootable { get; set; } + + [MemoryPackOrder(10)] + public bool? PrimaryPartition { get; set; } + + [MemoryPackOrder(11)] + public bool? BootPartition { get; set; } + + [MemoryPackOrder(12)] + public ulong? BlockSize { get; set; } + + [MemoryPackOrder(13)] + public ulong? NumberOfBlocks { get; set; } + + [MemoryPackOrder(14)] + public ulong? StartingOffset { get; set; } + + [MemoryPackOrder(15)] + public DriveType? DriveType { get; set; } + + [MemoryPackOrder(16)] + public string? ProviderName { get; set; } + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Event/Event.cs b/src/Agent/Insight.Agent.Assets/Messages/Event/Event.cs new file mode 100644 index 0000000..edd3b61 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Event/Event.cs @@ -0,0 +1,41 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(10, typeof(Event))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class Event : IAgentMessage + { + [MemoryPackOrder(0)] + public DateTime? Timestamp { get; set; } + + [MemoryPackOrder(1)] + public StatusType? Status { get; set; } + + [MemoryPackOrder(2)] + public string? Source { get; set; } + + [MemoryPackOrder(3)] + public string? Category { get; set; } + + [MemoryPackOrder(4)] + public int? EventId { get; set; } + + [MemoryPackOrder(5)] + public string? Task { get; set; } + + [MemoryPackOrder(6)] + public string? Message { get; set; } + + public enum StatusType + { + Unknown = 0, + Information = 1, + Warning = 2, + Error = 3, + Critical = 4 + } + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/IAgentMessage.cs b/src/Agent/Insight.Agent.Assets/Messages/IAgentMessage.cs new file mode 100644 index 0000000..3c3edf0 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/IAgentMessage.cs @@ -0,0 +1,7 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackable] + public partial interface IAgentMessage { } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Interface/Interface.cs b/src/Agent/Insight.Agent.Assets/Messages/Interface/Interface.cs new file mode 100644 index 0000000..1c008c5 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Interface/Interface.cs @@ -0,0 +1,195 @@ +using MemoryPack; +using System.Net; +using System.Net.NetworkInformation; +using System.Net.Sockets; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(70, typeof(Interface))] + [MemoryPackUnion(71, typeof(InterfaceList))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class Interface : IAgentMessage + { + [MemoryPackOrder(0)] + public uint? Index { get; set; } + + [MemoryPackOrder(1)] + public Guid? Guid { get; set; } + + [MemoryPackOrder(2)] + public string? Mac { get; set; } + + [MemoryPackOrder(3)] + public string? Name { get; set; } + + [MemoryPackOrder(4)] + public string? Description { get; set; } + + [MemoryPackOrder(5)] + public string? Manufacturer { get; set; } + + [MemoryPackOrder(6)] + public string? Suffix { get; set; } + + [MemoryPackOrder(7)] + public bool? Physical { get; set; } + + [MemoryPackOrder(8)] + public NetworkInterfaceType? Type { get; set; } + + [MemoryPackOrder(9)] + public OperationalStatus? Status { get; set; } + + [MemoryPackOrder(10)] + public long? Speed { get; set; } + + [MemoryPackOrder(11)] + public long? Ipv4Mtu { get; set; } + + [MemoryPackOrder(12)] + public bool? Ipv4Dhcp { get; set; } + + [MemoryPackOrder(13)] + public bool? Ipv4Forwarding { get; set; } + + [MemoryPackOrder(14)] + public long? Ipv6Mtu { get; set; } + + [MemoryPackOrder(15)] + public long? Sent { get; set; } + + [MemoryPackOrder(16)] + public long? Received { get; set; } + + [MemoryPackOrder(17)] + public long? IncomingPacketsDiscarded { get; set; } + + [MemoryPackOrder(18)] + public long? IncomingPacketsWithErrors { get; set; } + + [MemoryPackOrder(19)] + public long? IncomingUnknownProtocolPackets { get; set; } + + [MemoryPackOrder(20)] + public long? OutgoingPacketsDiscarded { get; set; } + + [MemoryPackOrder(21)] + public long? OutgoingPacketsWithErrors { get; set; } + + [MemoryPackOrder(22)] + public List? Addresses { get; set; } + + [MemoryPackOrder(23)] + public List? Gateways { get; set; } + + [MemoryPackOrder(24)] + public List? Dns { get; set; } + + [MemoryPackOrder(25)] + public List? Dhcp { get; set; } + + [MemoryPackOrder(26)] + public List? Routes { get; set; } + } + + [MemoryPackable(GenerateType.Collection)] + public partial class InterfaceList : List, IAgentMessage { } + + [MemoryPackable] + public partial class Unicast : IAgentMessage + { + [MemoryPackOrder(0)] + public IPAddress2? IpAddress { get; set; } + + [MemoryPackOrder(1)] + public IPAddress2? Ipv4Mask { get; set; } + + [MemoryPackOrder(2)] + public long? AddressPreferredLifetime { get; set; } + + [MemoryPackOrder(3)] + public long? AddressValidLifetime { get; set; } + + [MemoryPackOrder(4)] + public long? DhcpLeaseLifetime { get; set; } + + [MemoryPackOrder(5)] + public DuplicateAddressDetectionState? DuplicateAddressDetectionState { get; set; } + + [MemoryPackOrder(6)] + public int? PrefixLength { get; set; } + + [MemoryPackOrder(7)] + public PrefixOrigin? PrefixOrigin { get; set; } + + [MemoryPackOrder(8)] + public SuffixOrigin? SuffixOrigin { get; set; } + } + + [MemoryPackable] + public partial class Route : IAgentMessage + { + [MemoryPackOrder(0)] + public uint? InterfaceIndex { get; set; } + + [MemoryPackOrder(1)] + public IPAddress2? Destination { get; set; } + + [MemoryPackOrder(2)] + public IPAddress2? Gateway { get; set; } + + [MemoryPackOrder(3)] + public string? Mask { get; set; } + + [MemoryPackOrder(4)] + public int? Metric { get; set; } + } + + [MemoryPackable] + public partial class IPAddress2 : IAgentMessage + { + [MemoryPackOrder(0)] + public AddressFamily? AddressFamily { get; set; } + + [MemoryPackOrder(1)] + public string? Address { get; set; } + + [MemoryPackOrder(2)] + public bool? IsIPv6Teredo { get; set; } + + [MemoryPackOrder(3)] + public bool? IsIPv6SiteLocal { get; set; } + + [MemoryPackOrder(4)] + public bool? IsIPv6Multicast { get; set; } + + [MemoryPackOrder(5)] + public bool? IsIPv6LinkLocal { get; set; } + + [MemoryPackOrder(6)] + public bool? IsIPv4MappedToIPv6 { get; set; } + + [MemoryPackOrder(7)] + public bool? IsIPv6UniqueLocal { get; set; } + + [MemoryPackConstructor] + public IPAddress2() + { + + } + + public IPAddress2(IPAddress address) + { + AddressFamily = address.AddressFamily; + Address = address.ToString(); + IsIPv4MappedToIPv6 = address.IsIPv4MappedToIPv6; + IsIPv6LinkLocal = address.IsIPv6LinkLocal; + IsIPv6Multicast = address.IsIPv6Multicast; + IsIPv6SiteLocal = address.IsIPv6SiteLocal; + IsIPv6Teredo = address.IsIPv6Teredo; + IsIPv6UniqueLocal = address.IsIPv6UniqueLocal; + } + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Keepalive/Keepalive.cs b/src/Agent/Insight.Agent.Assets/Messages/Keepalive/Keepalive.cs new file mode 100644 index 0000000..63588dc --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Keepalive/Keepalive.cs @@ -0,0 +1,10 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(0, typeof(Keepalive))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class Keepalive : IAgentMessage { } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Mainboard/Mainboard.cs b/src/Agent/Insight.Agent.Assets/Messages/Mainboard/Mainboard.cs new file mode 100644 index 0000000..a86bc5b --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Mainboard/Mainboard.cs @@ -0,0 +1,29 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(20, typeof(Mainboard))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class Mainboard : IAgentMessage + { + [MemoryPackOrder(0)] + public string? Manufacturer { get; set; } + + [MemoryPackOrder(1)] + public string? Model { get; set; } + + [MemoryPackOrder(2)] + public string? Serial { get; set; } + + [MemoryPackOrder(3)] + public string? BiosManufacturer { get; set; } + + [MemoryPackOrder(4)] + public string? BiosVersion { get; set; } + + [MemoryPackOrder(5)] + public DateTime? BiosDate { get; set; } + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Memory/Memory.cs b/src/Agent/Insight.Agent.Assets/Messages/Memory/Memory.cs new file mode 100644 index 0000000..bb8e444 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Memory/Memory.cs @@ -0,0 +1,67 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(40, typeof(Memory))] + [MemoryPackUnion(41, typeof(MemoryList))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class Memory : IAgentMessage + { + [MemoryPackOrder(0)] + public uint? Index { get; set; } + + [MemoryPackOrder(1)] + public string? Tag { get; set; } + + [MemoryPackOrder(2)] + public string? Location { get; set; } + + [MemoryPackOrder(3)] + public string? Manufacturer { get; set; } + + [MemoryPackOrder(4)] + public string? Model { get; set; } + + [MemoryPackOrder(5)] + public string? Serial { get; set; } + + [MemoryPackOrder(6)] + public ulong? Capacity { get; set; } + + [MemoryPackOrder(7)] + public uint? Speed { get; set; } + + [MemoryPackOrder(8)] + public uint? Voltage { get; set; } + + [MemoryPackOrder(9)] + public uint? ConfiguredSpeed { get; set; } + + [MemoryPackOrder(10)] + public uint? ConfiguredVoltage { get; set; } + } + + [MemoryPackable(GenerateType.Collection)] + public partial class MemoryList : List, IAgentMessage { } + + [MemoryPackable] + public partial class MemoryMetric : IAgentMessage + { + [MemoryPackOrder(0)] + public DateTime? Timestamp { get; set; } + + [MemoryPackOrder(1)] + public float? MemoryAvailable { get; set; } + + [MemoryPackOrder(2)] + public float? MemoryAvailablePercentage { get; set; } + + [MemoryPackOrder(3)] + public float? MemoryUsed { get; set; } + + [MemoryPackOrder(4)] + public float? MemoryUsagePercentage { get; set; } + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/OperationSystem/OperationSystem.cs b/src/Agent/Insight.Agent.Assets/Messages/OperationSystem/OperationSystem.cs new file mode 100644 index 0000000..0fe4ee5 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/OperationSystem/OperationSystem.cs @@ -0,0 +1,30 @@ +using MemoryPack; +using System.Runtime.InteropServices; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(90, typeof(OperationSystem))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class OperationSystem : IAgentMessage + { + [MemoryPackOrder(0)] + public string? Name { get; set; } + + [MemoryPackOrder(1)] + public string? Version { get; set; } + + [MemoryPackOrder(2)] + public string? SerialNumber { get; set; } + + [MemoryPackOrder(3)] + public Architecture? Architecture { get; set; } + + [MemoryPackOrder(4)] + public bool? Virtual { get; set; } + + [MemoryPackOrder(5)] + public DateTime? InstallDate { get; set; } + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Printer/Printer.cs b/src/Agent/Insight.Agent.Assets/Messages/Printer/Printer.cs new file mode 100644 index 0000000..0478fc0 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Printer/Printer.cs @@ -0,0 +1,30 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(140, typeof(Printer))] + [MemoryPackUnion(141, typeof(PrinterList))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class Printer : IAgentMessage + { + [MemoryPackOrder(0)] + public string? Name { get; set; } + + [MemoryPackOrder(1)] + public string? Driver { get; set; } + + [MemoryPackOrder(2)] + public string? Port { get; set; } + + [MemoryPackOrder(3)] + public string? Location { get; set; } + + [MemoryPackOrder(4)] + public string? Comment { get; set; } + } + + [MemoryPackable(GenerateType.Collection)] + public partial class PrinterList : List, IAgentMessage { } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Processor/Processor.cs b/src/Agent/Insight.Agent.Assets/Messages/Processor/Processor.cs new file mode 100644 index 0000000..edd63af --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Processor/Processor.cs @@ -0,0 +1,70 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(30, typeof(Processor))] + [MemoryPackUnion(31, typeof(ProcessorList))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class Processor : IAgentMessage + { + [MemoryPackOrder(0)] + public uint? Index { get; set; } + + [MemoryPackOrder(1)] + public string? Name { get; set; } + + [MemoryPackOrder(2)] + public string? Manufacturer { get; set; } + + [MemoryPackOrder(3)] + public string? SerialNumber { get; set; } + + [MemoryPackOrder(4)] + public string? Socket { get; set; } + + [MemoryPackOrder(5)] + public string? Version { get; set; } + + [MemoryPackOrder(6)] + public string? DeviceId { get; set; } + + [MemoryPackOrder(7)] + public uint? Cores { get; set; } + + [MemoryPackOrder(8)] + public uint? LogicalCores { get; set; } + + [MemoryPackOrder(9)] + public uint? CurrentSpeed { get; set; } + + [MemoryPackOrder(10)] + public uint? MaxSpeed { get; set; } + + [MemoryPackOrder(11)] + public uint? L1Size { get; set; } + + [MemoryPackOrder(12)] + public uint? L2Size { get; set; } + + [MemoryPackOrder(13)] + public uint? L3Size { get; set; } + + [MemoryPackOrder(14)] + public bool? Virtualization { get; set; } + } + + [MemoryPackable(GenerateType.Collection)] + public partial class ProcessorList : List, IAgentMessage { } + + [MemoryPackable] + public partial class ProcessorMetric : IAgentMessage + { + [MemoryPackOrder(0)] + public DateTime? Timestamp { get; set; } + + [MemoryPackOrder(1)] + public float? ProcessorUsagePercentage { get; set; } + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Service/Service.cs b/src/Agent/Insight.Agent.Assets/Messages/Service/Service.cs new file mode 100644 index 0000000..61aa86d --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Service/Service.cs @@ -0,0 +1,64 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(130, typeof(Service))] + [MemoryPackUnion(131, typeof(ServiceList))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class Service : IAgentMessage + { + [MemoryPackOrder(0)] + public uint? ProcessId { get; set; } + + [MemoryPackOrder(1)] + public string? Name { get; set; } + + [MemoryPackOrder(2)] + public string? Display { get; set; } + + [MemoryPackOrder(3)] + public string? Description { get; set; } + + [MemoryPackOrder(4)] + public string? PathName { get; set; } + + [MemoryPackOrder(5)] + public string? Account { get; set; } + + [MemoryPackOrder(6)] + public bool? Delay { get; set; } + + [MemoryPackOrder(7)] + public ServiceStatus? Status { get; set; } + + [MemoryPackOrder(8)] + public ServiceMode? StartMode { get; set; } + + public enum ServiceStatus + { + Unknown = -1, + Stopped = 1, + StartPending = 2, + StopPending = 3, + Running = 4, + ContinuePending = 5, + PausePending = 6, + Paused = 7 + } + + public enum ServiceMode + { + Unknown = -1, + Boot = 0, + System = 1, + Automatic = 2, + Manual = 3, + Disabled = 4 + } + } + + [MemoryPackable(GenerateType.Collection)] + public partial class ServiceList : List, IAgentMessage { } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Session/Session.cs b/src/Agent/Insight.Agent.Assets/Messages/Session/Session.cs new file mode 100644 index 0000000..625c4ef --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Session/Session.cs @@ -0,0 +1,30 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(110, typeof(Session))] + [MemoryPackUnion(111, typeof(SessionList))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class Session : IAgentMessage + { + [MemoryPackOrder(0)] + public string? Sid { get; set; } + + [MemoryPackOrder(1)] + public string? User { get; set; } + + [MemoryPackOrder(2)] + public string? Type { get; set; } + + [MemoryPackOrder(3)] + public string? Status { get; set; } + + [MemoryPackOrder(4)] + public string? Remote { get; set; } + } + + [MemoryPackable(GenerateType.Collection)] + public partial class SessionList : List, IAgentMessage { } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Status/Status.cs b/src/Agent/Insight.Agent.Assets/Messages/Status/Status.cs new file mode 100644 index 0000000..de31591 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Status/Status.cs @@ -0,0 +1,17 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(3, typeof(Status))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class Status : IAgentMessage + { + [MemoryPackOrder(0)] + public DateTime Timestamp { get; } = DateTime.Now; + + [MemoryPackOrder(1)] + public TimeSpan Uptime { get; set; } + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/StoragePool/StoragePool.cs b/src/Agent/Insight.Agent.Assets/Messages/StoragePool/StoragePool.cs new file mode 100644 index 0000000..6148979 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/StoragePool/StoragePool.cs @@ -0,0 +1,302 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(160, typeof(StoragePool))] + [MemoryPackUnion(161, typeof(StoragePoolList))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class StoragePool : IAgentMessage + { + [MemoryPackOrder(0)] + public string? UniqueId { get; set; } + + [MemoryPackOrder(1)] + public string? Name { get; set; } + + [MemoryPackOrder(2)] + public string? FriendlyName { get; set; } + + [MemoryPackOrder(3)] + public List? States { get; set; } + + [MemoryPackOrder(4)] + public HealthState? Health { get; set; } + + [MemoryPackOrder(5)] + public RetireMissingPhysicalDisksEnum? RetireMissingPhysicalDisks { get; set; } + + [MemoryPackOrder(6)] + public string? Resiliency { get; set; } + + [MemoryPackOrder(7)] + public bool? IsPrimordial { get; set; } + + [MemoryPackOrder(8)] + public bool? IsReadOnly { get; set; } + + [MemoryPackOrder(9)] + public bool? IsClustered { get; set; } + + [MemoryPackOrder(10)] + public ulong? Size { get; set; } + + [MemoryPackOrder(11)] + public ulong? AllocatedSize { get; set; } + + [MemoryPackOrder(12)] + public ulong? SectorSize { get; set; } + + [MemoryPackOrder(13)] + public List? PhysicalDisks { get; set; } + + [MemoryPackOrder(14)] + public List? VirtualDisks { get; set; } + + public enum OperationalState + { + Unknown = 0, + Other = 1, + OK = 2, + Degraded = 3, + Stressed = 4, + Predictive_Failure = 5, + Error = 6, + Non_Recoverable_Error = 7, + Starting = 8, + Stopping = 9, + Stopped = 10, + In_Service = 11, + No_Contact = 12, + Lost_Communication = 13, + Aborted = 14, + Dormant = 15, + Supporting_Entity_In_Error = 16, + Completed = 17, + Power_Mode = 18, + Relocating = 19 + } + + public enum HealthState + { + Healthy = 0, + Warning = 1, + Unhealthy = 2, + Unknown = 3 + } + + public enum RetireMissingPhysicalDisksEnum + { + Auto = 1, + Always = 2, + Never = 3 + } + } + + [MemoryPackable(GenerateType.Collection)] + public partial class StoragePoolList : List, IAgentMessage { } + + [MemoryPackable] + public partial class PhysicalDisk : IAgentMessage + { + [MemoryPackOrder(0)] + public string? UniqueId { get; set; } + + [MemoryPackOrder(1)] + public string? DeviceId { get; set; } + + [MemoryPackOrder(2)] + public string? FriendlyName { get; set; } + + [MemoryPackOrder(3)] + public string? Manufacturer { get; set; } + + [MemoryPackOrder(4)] + public string? Model { get; set; } + + [MemoryPackOrder(5)] + public ushort? MediaType { get; set; } + + [MemoryPackOrder(6)] + public ushort? BusType { get; set; } + + [MemoryPackOrder(7)] + public List? States { get; set; } + + [MemoryPackOrder(8)] + public HealthState? Health { get; set; } + + [MemoryPackOrder(9)] + public List? SupportedUsages { get; set; } + + [MemoryPackOrder(10)] + public ushort? Usage { get; set; } + + [MemoryPackOrder(11)] + public string? PhysicalLocation { get; set; } + + [MemoryPackOrder(12)] + public string? SerialNumber { get; set; } + + [MemoryPackOrder(13)] + public string? FirmwareVersion { get; set; } + + [MemoryPackOrder(14)] + public ulong? Size { get; set; } + + [MemoryPackOrder(15)] + public ulong? AllocatedSize { get; set; } + + [MemoryPackOrder(16)] + public ulong? LogicalSectorSize { get; set; } + + [MemoryPackOrder(17)] + public ulong? PhysicalSectorSize { get; set; } + + [MemoryPackOrder(18)] + public ulong? VirtualDiskFootprint { get; set; } + + public enum OperationalState + { + Unknown = 0, + Other = 1, + OK = 2, + Degraded = 3, + Stressed = 4, + Predictive_Failure = 5, + Error = 6, + Non_Recoverable_Error = 7, + Starting = 8, + Stopping = 9, + Stopped = 10, + In_Service = 11, + No_Contact = 12, + Lost_Communication = 13, + Aborted = 14, + Dormant = 15, + Supporting_Entity_In_Error = 16, + Completed = 17, + Power_Mode = 18, + Relocating = 19 + } + + public enum HealthState + { + Healthy = 0, + Warning = 1, + Unhealthy = 2, + Unknown = 3 + } + + public enum SupportedUsagesEnum + { + Unknown = 0, + Auto_Select = 1, + Manual_Select = 2, + Hot_Spare = 3, + Retired = 4, + Journal = 5 + } + } + + [MemoryPackable] + public partial class VirtualDisk : IAgentMessage + { + [MemoryPackOrder(0)] + public string? UniqueId { get; set; } + + [MemoryPackOrder(1)] + public string? Name { get; set; } + + [MemoryPackOrder(2)] + public string? FriendlyName { get; set; } + + [MemoryPackOrder(3)] + public List? States { get; set; } + + [MemoryPackOrder(4)] + public HealthState? Health { get; set; } + + [MemoryPackOrder(5)] + public AccessTypeEnum? AccessType { get; set; } + + [MemoryPackOrder(6)] + public ProvisioningTypeEnum? ProvisioningType { get; set; } + + [MemoryPackOrder(7)] + public ushort? PhysicalDiskRedundancy { get; set; } + + [MemoryPackOrder(8)] + public string? ResiliencySettingName { get; set; } + + [MemoryPackOrder(9)] + public bool? Deduplication { get; set; } + + [MemoryPackOrder(10)] + public bool? IsSnapshot { get; set; } + + [MemoryPackOrder(11)] + public ulong? Size { get; set; } + + [MemoryPackOrder(12)] + public ulong? AllocatedSize { get; set; } + + [MemoryPackOrder(13)] + public ulong? FootprintOnPool { get; set; } + + [MemoryPackOrder(14)] + public ulong? ReadCacheSize { get; set; } + + [MemoryPackOrder(15)] + public ulong? WriteCacheSize { get; set; } + + public enum OperationalState + { + Unknown = 0, + Other = 1, + OK = 2, + Degraded = 3, + Stressed = 4, + Predictive_Failure = 5, + Error = 6, + Non_Recoverable_Error = 7, + Starting = 8, + Stopping = 9, + Stopped = 10, + In_Service = 11, + No_Contact = 12, + Lost_Communication = 13, + Aborted = 14, + Dormant = 15, + Supporting_Entity_In_Error = 16, + Completed = 17, + Power_Mode = 18, + Relocating = 19 + } + + public enum HealthState + { + Healthy = 0, + Warning = 1, + Unhealthy = 2, + Unknown = 3 + } + + public enum AccessTypeEnum + { + Unknown = 0, + Readable = 1, + Writeable = 2, + Read_Write = 3, + Write_Once = 4 + } + + public enum ProvisioningTypeEnum + { + Unknown = 0, + Thin = 1, + Fixed = 2 + } + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/SystemInfo/SystemInfo.cs b/src/Agent/Insight.Agent.Assets/Messages/SystemInfo/SystemInfo.cs new file mode 100644 index 0000000..8ec0441 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/SystemInfo/SystemInfo.cs @@ -0,0 +1,23 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(80, typeof(SystemInfo))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class SystemInfo : IAgentMessage + { + [MemoryPackOrder(0)] + public DateTime? LastBootUpTime { get; set; } + + [MemoryPackOrder(1)] + public DateTime? LocalDateTime { get; set; } + + [MemoryPackOrder(2)] + public uint? Processes { get; set; } + + [MemoryPackOrder(3)] + public string? License { get; set; } + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Trap/Trap.cs b/src/Agent/Insight.Agent.Assets/Messages/Trap/Trap.cs new file mode 100644 index 0000000..d0a66db --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Trap/Trap.cs @@ -0,0 +1,29 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(11, typeof(Trap))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class Trap : IAgentMessage + { + [MemoryPackOrder(0)] + public DateTime? Timestamp { get; set; } + + [MemoryPackOrder(1)] + public string? Endpoint { get; set; } + + [MemoryPackOrder(2)] + public string? Hostname { get; set; } + + [MemoryPackOrder(3)] + public string? Version { get; set; } + + [MemoryPackOrder(4)] + public string? Community { get; set; } + + [MemoryPackOrder(5)] + public List>? Data { get; set; } + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Update/Update.cs b/src/Agent/Insight.Agent.Assets/Messages/Update/Update.cs new file mode 100644 index 0000000..ecc84c1 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Update/Update.cs @@ -0,0 +1,83 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(100, typeof(Update))] + [MemoryPackUnion(101, typeof(UpdateList))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class Update : IAgentMessage + { + [MemoryPackOrder(0)] + public string? Id { get; set; } + + [MemoryPackOrder(1)] + public DateTime? Date { get; set; } + + [MemoryPackOrder(2)] + public string? Name { get; set; } + + [MemoryPackOrder(3)] + public string? Description { get; set; } + + [MemoryPackOrder(4)] + public string? SupportUrl { get; set; } + + [MemoryPackOrder(5)] + public string? Hotfix { get; set; } + + // if installed + [MemoryPackOrder(6)] + public OsUpdateResultCodeEnum? Result { get; set; } + + // if pending + [MemoryPackOrder(7)] + public OsUpdateTypeEnum? Type { get; set; } + + [MemoryPackOrder(8)] + public decimal? Size { get; set; } + + [MemoryPackOrder(9)] + public bool? IsDownloaded { get; set; } + + [MemoryPackOrder(10)] + public bool? CanRequestUserInput { get; set; } + + [MemoryPackOrder(11)] + public OsUpdateRebootBehaviorEnum? RebootBehavior { get; set; } + + public enum OsUpdateRebootBehaviorEnum + { + NeverReboots = 1, + AlwaysRequiresReboot = 2, + CanRequestReboot = 3 + } + + public enum OsUpdateResultCodeEnum + { + NotStarted = 1, + InProgress = 2, + Succeeded = 3, + SucceededWithErrors = 4, + Failed = 5, + Aborted = 6 + } + + public enum OsUpdateTypeEnum + { + Software = 1, + Driver = 2 + } + } + + [MemoryPackable] + public partial class UpdateList : IAgentMessage + { + [MemoryPackOrder(0)] + public List? Installed { get; set; } + + [MemoryPackOrder(1)] + public List? Pending { get; set; } + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/User/User.cs b/src/Agent/Insight.Agent.Assets/Messages/User/User.cs new file mode 100644 index 0000000..968c4bb --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/User/User.cs @@ -0,0 +1,73 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(150, typeof(User))] + [MemoryPackUnion(151, typeof(UserList))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class User : IAgentMessage + { + [MemoryPackOrder(0)] + public string? Sid { get; set; } + + [MemoryPackOrder(1)] + public string? Domain { get; set; } + + [MemoryPackOrder(2)] + public string? Name { get; set; } + + [MemoryPackOrder(3)] + public string? FullName { get; set; } + + [MemoryPackOrder(4)] + public string? Description { get; set; } + + [MemoryPackOrder(5)] + public string? Status { get; set; } + + [MemoryPackOrder(6)] + public bool? LocalAccount { get; set; } + + [MemoryPackOrder(7)] + public bool? Disabled { get; set; } + + [MemoryPackOrder(8)] + public bool? Lockout { get; set; } + + [MemoryPackOrder(9)] + public bool? PasswordChangeable { get; set; } + + [MemoryPackOrder(10)] + public bool? PasswordExpires { get; set; } + + [MemoryPackOrder(11)] + public bool? PasswordRequired { get; set; } + + [MemoryPackOrder(12)] + public List? Groups { get; set; } + } + + [MemoryPackable(GenerateType.Collection)] + public partial class UserList : List, IAgentMessage { } + + [MemoryPackable] + public partial class Group : IAgentMessage + { + [MemoryPackOrder(0)] + public string? Sid { get; set; } + + [MemoryPackOrder(1)] + public string? Domain { get; set; } + + [MemoryPackOrder(2)] + public string? Name { get; set; } + + [MemoryPackOrder(3)] + public string? Description { get; set; } + + [MemoryPackOrder(4)] + public bool? LocalAccount { get; set; } + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/Videocard/Videocard.cs b/src/Agent/Insight.Agent.Assets/Messages/Videocard/Videocard.cs new file mode 100644 index 0000000..151d441 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/Videocard/Videocard.cs @@ -0,0 +1,30 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(60, typeof(Videocard))] + [MemoryPackUnion(61, typeof(VideocardList))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class Videocard : IAgentMessage + { + [MemoryPackOrder(0)] + public string? DeviceId { get; set; } + + [MemoryPackOrder(1)] + public string? Model { get; set; } + + [MemoryPackOrder(2)] + public ulong Memory { get; set; } + + [MemoryPackOrder(3)] + public DateTime DriverDate { get; set; } + + [MemoryPackOrder(4)] + public string? DriverVersion { get; set; } + } + + [MemoryPackable(GenerateType.Collection)] + public partial class VideocardList : List, IAgentMessage { } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Messages/VirtualMaschine/VirtualMaschine.cs b/src/Agent/Insight.Agent.Assets/Messages/VirtualMaschine/VirtualMaschine.cs new file mode 100644 index 0000000..a91dc44 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Messages/VirtualMaschine/VirtualMaschine.cs @@ -0,0 +1,265 @@ +using MemoryPack; + +namespace Insight.Agent.Messages +{ + [MemoryPackUnion(170, typeof(VirtualMaschine))] + [MemoryPackUnion(171, typeof(VirtualMaschineList))] + public partial interface IAgentMessage { } + + [MemoryPackable] + public partial class VirtualMaschine : IAgentMessage + { + [MemoryPackOrder(0)] + public Guid? Id { get; set; } + + [MemoryPackOrder(1)] + public uint? ProcessId { get; set; } + + [MemoryPackOrder(2)] + public string? Caption { get; set; } + + [MemoryPackOrder(3)] + public string? Name { get; set; } + + [MemoryPackOrder(4)] + public string? Notes { get; set; } + + [MemoryPackOrder(5)] + public EnabledEnum? Enabled { get; set; } + + [MemoryPackOrder(6)] + public EnabledDefaultEnum? EnabledDefault { get; set; } + + [MemoryPackOrder(7)] + public HealthStatusEnum? HealthState { get; set; } + + [MemoryPackOrder(8)] + public string? Status { get; set; } + + [MemoryPackOrder(9)] + public ulong? OnTime { get; set; } + + [MemoryPackOrder(10)] + public uint? ReplicationMode { get; set; } + + [MemoryPackOrder(11)] + public ReplicationStateEnum? ReplicationState { get; set; } + + [MemoryPackOrder(12)] + public ReplicationHealthEnum? ReplicationHealth { get; set; } + + [MemoryPackOrder(13)] + public string? ConfigurationVersion { get; set; } + + [MemoryPackOrder(14)] + public IntegrationServicesVersionStateEnum? IntegrationServicesVersionState { get; set; } + + [MemoryPackOrder(15)] + public uint? NumberOfProcessors { get; set; } + + [MemoryPackOrder(16)] + public uint? ProcessorLoad { get; set; } + + [MemoryPackOrder(17)] + public int? MemoryAvailable { get; set; } + + [MemoryPackOrder(18)] + public ulong? MemoryUsage { get; set; } + + [MemoryPackOrder(19)] + public DateTime? InstallDate { get; set; } + + [MemoryPackOrder(20)] + public DateTime? TimeOfLastConfigurationChange { get; set; } + + [MemoryPackOrder(21)] + public DateTime? TimeOfLastStateChange { get; set; } + + [MemoryPackOrder(22)] + public DateTime? LastReplicationTime { get; set; } + + [MemoryPackOrder(23)] + public string? GuestOperatingSystem { get; set; } + + [MemoryPackOrder(24)] + public List? Configurations { get; set; } + + public enum EnabledEnum + { + Unbekannt = 0, + Andere = 1, + Aktiviert = 2, + Deaktiviert = 3, + Herunterfahren = 4, + Nicht_Verfügbar = 5, + Aktiviert_Offline = 6, + In_Test = 7, + Latent = 8, + Eingeschränkt = 9, + Wird_gestartet = 10 + } + + public enum EnabledDefaultEnum + { + Aktiviert = 2, + Deaktiviert = 3, + Aktiviert_Offline = 6 + } + + public enum HealthStatusEnum + { + OK = 5, + Hauptfehler = 20, + Kritischer_Fehler = 25 + } + + public enum ReplicationStateEnum + { + Deaktiviert = 0, + Bereit = 1, + Warten_auf_Erstreplikation = 2, + Replikat = 3, + Synchronisierte_Replication_abgeschlossen = 4, + Wiederhergestellt = 5, + Commit = 6, + Angehalten = 7, + Kritisch = 8, + Warten_auf_die_Neusynchronisierung = 9, + Resynchronisierung = 10, + Resynchronisierung_angehalten = 11, + Failover_in_Bearbeitung = 12, + Failback_in_Fortschritt = 13, + Failback_abgeschlossen = 14, + Datenträgerupdate_in_Bearbeitung = 15, + Datenträgeraktualisierung_kritisch = 16, + Unbekannt = 17, + Repurpose_Replikation_in_Bearbeitung = 18, + Vorbereitet_für_die_Synchronisierungsreplikation = 19, + Vorbereitet_für_die_Umgekehrte_Replikation_der_Gruppe = 20, + Failover_in_Fortschritt = 21 + } + + public enum ReplicationHealthEnum + { + OK = 1, + Warnung = 2, + Kritisch = 3 + } + + public enum IntegrationServicesVersionStateEnum + { + Unknown = 0, + UpToDate = 1, + Mismatch = 2 + } + } + + [MemoryPackable(GenerateType.Collection)] + public partial class VirtualMaschineList : List, IAgentMessage { } + + [MemoryPackable] + public partial class VirtualMaschineConfiguration : IAgentMessage + { + [MemoryPackOrder(0)] + public string? Id { get; set; } + + [MemoryPackOrder(1)] + public string? ParentId { get; set; } + + [MemoryPackOrder(2)] + public string? Type { get; set; } + + [MemoryPackOrder(3)] + public string? Name { get; set; } + + [MemoryPackOrder(4)] + public DateTime? CreationTime { get; set; } + + [MemoryPackOrder(5)] + public string? Generation { get; set; } + + [MemoryPackOrder(6)] + public string? Architecture { get; set; } + + [MemoryPackOrder(7)] + public AutomaticStartupActionEnum? AutomaticStartupAction { get; set; } + //public DateTime? AutomaticStartupActionDelay { get; set; } + + [MemoryPackOrder(8)] + public AutomaticShutdownActionEnum? AutomaticShutdownAction { get; set; } + + [MemoryPackOrder(9)] + public AutomaticRecoveryActionEnum? AutomaticRecoveryAction { get; set; } + + [MemoryPackOrder(10)] + public bool? AutomaticSnapshotsEnabled { get; set; } + + [MemoryPackOrder(11)] + public string? BaseBoardSerialNumber { get; set; } + + [MemoryPackOrder(12)] + public string? BIOSGUID { get; set; } + + [MemoryPackOrder(13)] + public string? BIOSSerialNumber { get; set; } + + [MemoryPackOrder(14)] + public ushort[]? BootOrder { get; set; } + + [MemoryPackOrder(15)] + public string? ConfigurationDataRoot { get; set; } + + [MemoryPackOrder(16)] + public string? ConfigurationFile { get; set; } + + [MemoryPackOrder(17)] + public string? GuestStateDataRoot { get; set; } + + [MemoryPackOrder(18)] + public string? GuestStateFile { get; set; } + + [MemoryPackOrder(19)] + public string? SnapshotDataRoot { get; set; } + + [MemoryPackOrder(20)] + public string? SuspendDataRoot { get; set; } + + [MemoryPackOrder(21)] + public string? SwapFileDataRoot { get; set; } + + [MemoryPackOrder(22)] + public bool? SecureBootEnabled { get; set; } + + [MemoryPackOrder(23)] + public bool? IsAutomaticSnapshot { get; set; } + + [MemoryPackOrder(24)] + public string[]? Notes { get; set; } + + [MemoryPackOrder(25)] + public List? Childs { get; set; } + + //public string[]? HostResource { get; set; } + + public enum AutomaticStartupActionEnum + { + Nothing = 2, + RestartIfLastStateActive = 3, + Alway = 4 + } + + public enum AutomaticShutdownActionEnum + { + Ausschalten = 2, + Speichern = 3, + Herunterfahren = 4 + } + + public enum AutomaticRecoveryActionEnum + { + Keine = 2, + Neustart = 3, + Rollback = 4 + } + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent.Assets/Models/Config.cs b/src/Agent/Insight.Agent.Assets/Models/Config.cs new file mode 100644 index 0000000..4be9391 --- /dev/null +++ b/src/Agent/Insight.Agent.Assets/Models/Config.cs @@ -0,0 +1,7 @@ +namespace Insight.Agent.Models +{ + public class Config + { + public Guid? Serial { get; set; } + } +} \ No newline at end of file diff --git a/src/Agent/Insight.Agent/Assemblies/Interop.WUApiLib.dll b/src/Agent/Insight.Agent/Assemblies/Interop.WUApiLib.dll new file mode 100644 index 0000000000000000000000000000000000000000..990990c55c5078b23b5543bfe2607cbbf6c0b6e2 GIT binary patch literal 78336 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