mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-26 12:08:47 +02:00
N°8760 - Audit uninstall of extensions that declare final classes
N°8760 - be able to list modules based on extension choices refactoring: move some classes in a moduleinstallation folder (coming namespace) N°8760 - module dependency check applied before audit N°8760 - make dependency check work during audit N°8760 - fix ci N°8760 - fix ci N°8760 - add GetCreatedIn to get module name based on DBObject class - everything stored in MetaModel during compilation and autoload N°8760 - be able to describe from which module a datamodel class comes via MetaModel created_in field N°8760 - rename GetCreatedIn <- GetModuleName + compute module name live instead having complex stuff in MetaModel/compilation temp review 1 review: renaming InstallationChoicesToModuleConverter review: renaming InstallationChoicesToModuleConverter review: ModuleDiscovery:GetModulesOrderedByDependencies replacing deprecated GetAvailableModules method ci: fix typo cleanup review: rework InstallationChoicesToModuleConverter N°8760 - review tests
This commit is contained in:
@@ -0,0 +1,162 @@
|
||||
<?php
|
||||
|
||||
namespace Combodo\iTop\Test\UnitTest\Setup;
|
||||
|
||||
use AnalyzeInstallation;
|
||||
use Combodo\iTop\Test\UnitTest\ItopTestCase;
|
||||
use ModuleInstallationRepository;
|
||||
|
||||
class AnalyzeInstallationTest extends ItopTestCase
|
||||
{
|
||||
protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
$this->RequireOnceItopFile('setup/modulediscovery.class.inc.php');
|
||||
$this->RequireOnceItopFile('setup/runtimeenv.class.inc.php');
|
||||
}
|
||||
|
||||
public static function AnalyzeInstallationProvider()
|
||||
{
|
||||
//$aModules = json_decode(file_get_contents(__DIR__.'/ressources/priv_modules.json'), true);
|
||||
$aAnalyzeInstallationOutput = json_decode(file_get_contents(__DIR__.'/ressources/analyze_installation_output.json'), true);
|
||||
$aAvailableModules = json_decode(file_get_contents(__DIR__.'/ressources/available_modules.json'), true);
|
||||
return [
|
||||
'new modules not in DB setup history' => [
|
||||
'aAvailableModules' => [
|
||||
'mandatory_module/1.0.0' => [
|
||||
"mandatory" => true,
|
||||
"ga" => "bu",
|
||||
],
|
||||
'optional_module/6.6.6' => [
|
||||
"mandatory" => false,
|
||||
"zo" => "meu",
|
||||
],
|
||||
],
|
||||
'aInstalledModules' => [],
|
||||
'expected' => [
|
||||
'_Root_' => [
|
||||
'installed_version' => '',
|
||||
'available_version' => 'ITOP_VERSION_FULL',
|
||||
'name_code' => 'ITOP_APPLICATION',
|
||||
],
|
||||
'mandatory_module' => [
|
||||
"mandatory" => true,
|
||||
'installed_version' => '',
|
||||
'available_version' => '1.0.0',
|
||||
'install' => [
|
||||
'flag' => 2,
|
||||
'message' => 'the module is part of the application',
|
||||
],
|
||||
"ga" => "bu",
|
||||
],
|
||||
'optional_module' => [
|
||||
"mandatory" => false,
|
||||
'installed_version' => '',
|
||||
'available_version' => '6.6.6',
|
||||
"zo" => "meu",
|
||||
'install' => [
|
||||
'flag' => 1,
|
||||
'message' => '',
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
'new modules ALREADY in DB setup history' => [
|
||||
'aAvailableModules' => [
|
||||
'mandatory_module/1.0.0' => [
|
||||
"mandatory" => true,
|
||||
"ga" => "bu",
|
||||
],
|
||||
'optional_module/6.6.6' => [
|
||||
"mandatory" => false,
|
||||
"zo" => "meu",
|
||||
],
|
||||
],
|
||||
'aInstalledModules' => json_decode(file_get_contents(__DIR__.'/ressources/priv_modules_simpleusecase.json'), true),
|
||||
'expected' => [
|
||||
'_Root_' => [
|
||||
'installed_version' => '3.3.0-dev-svn',
|
||||
'available_version' => 'ITOP_VERSION_FULL',
|
||||
'name_code' => 'ITOP_APPLICATION',
|
||||
],
|
||||
'mandatory_module' => [
|
||||
"mandatory" => true,
|
||||
'installed_version' => '3.3.0',
|
||||
'available_version' => '1.0.0',
|
||||
"ga" => "bu",
|
||||
'install' => [
|
||||
'flag' => 2,
|
||||
'message' => 'the module is part of the application',
|
||||
],
|
||||
'uninstall' => [
|
||||
'flag' => 3,
|
||||
'message' => 'the module is part of the application',
|
||||
],
|
||||
],
|
||||
'optional_module' => [
|
||||
"mandatory" => false,
|
||||
'installed_version' => '3.3.0',
|
||||
'available_version' => '6.6.6',
|
||||
"zo" => "meu",
|
||||
'install' => [
|
||||
'flag' => 1,
|
||||
'message' => '',
|
||||
],
|
||||
'uninstall' => [
|
||||
'flag' => 1,
|
||||
'message' => '',
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
'dummyfirst installation' => [
|
||||
'aAvailableModules' => [],
|
||||
'aInstalledModules' => [],
|
||||
'expected' => [
|
||||
'_Root_' => [
|
||||
'installed_version' => '',
|
||||
'available_version' => 'ITOP_VERSION_FULL',
|
||||
'name_code' => 'ITOP_APPLICATION',
|
||||
],
|
||||
],
|
||||
],
|
||||
'dummy 2nd installation' => [
|
||||
'aAvailableModules' => [],
|
||||
'aInstalledModules' => json_decode(file_get_contents(__DIR__.'/ressources/priv_modules2.json'), true),
|
||||
'expected' => [
|
||||
'_Root_' => [
|
||||
'installed_version' => '3.3.0-dev-svn',
|
||||
'available_version' => 'ITOP_VERSION_FULL',
|
||||
'name_code' => 'ITOP_APPLICATION',
|
||||
],
|
||||
],
|
||||
],
|
||||
'real_case' => [
|
||||
'aAvailableModules' => $aAvailableModules,
|
||||
'aInstalledModules' => json_decode(file_get_contents(__DIR__.'/ressources/priv_modules2.json'), true),
|
||||
'expected' => $aAnalyzeInstallationOutput,
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider AnalyzeInstallationProvider
|
||||
*/
|
||||
public function testAnalyzeInstallation($aAvailableModules, $aInstalledModules, $expected)
|
||||
{
|
||||
$sContent = str_replace(['ITOP_VERSION_FULL', 'ITOP_APPLICATION'], [ITOP_VERSION_FULL, ITOP_APPLICATION], json_encode($expected));
|
||||
$expected = json_decode($sContent, true);
|
||||
|
||||
$this->SetNonPublicProperty(AnalyzeInstallation::GetInstance(), "aAvailableModules", $aAvailableModules);
|
||||
//$aModules = json_decode(file_get_contents(__DIR__.'/ressources/priv_modules2.json'), true);
|
||||
$this->SetNonPublicProperty(ModuleInstallationRepository::GetInstance(), "aSelectInstall", $aInstalledModules);
|
||||
|
||||
$oConfig = $this->createMock(\Config::class);
|
||||
|
||||
$modulesPath = [
|
||||
APPROOT.'extensions',
|
||||
];
|
||||
$aModules = AnalyzeInstallation::GetInstance()->AnalyzeInstallation($oConfig, $modulesPath, false, null);
|
||||
$this->assertEquals($expected, $aModules);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,430 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @copyright Copyright (C) 2010-2025 Combodo SARL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
|
||||
|
||||
class InstallationChoicesToModuleConverterTest extends ItopDataTestCase
|
||||
{
|
||||
protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
$this->RequireOnceItopFile('/setup/moduleinstallation/InstallationChoicesToModuleConverter.php');
|
||||
}
|
||||
|
||||
protected function tearDown(): void
|
||||
{
|
||||
parent::tearDown();
|
||||
ModuleDiscovery::ResetCache();
|
||||
}
|
||||
|
||||
//integration test
|
||||
public function testGetModulesWithXmlInstallationFile_UsualCustomerPackagesWithNonITIL()
|
||||
{
|
||||
$aSearchDirs = $this->GivenModuleDiscoveryInit();
|
||||
|
||||
$aInstalledModules = InstallationChoicesToModuleConverter::GetInstance()->GetModules(
|
||||
$this->GivenNonItilChoices(),
|
||||
$aSearchDirs,
|
||||
__DIR__.'/ressources/installation.xml'
|
||||
);
|
||||
|
||||
$aExpected = [
|
||||
'authent-cas/3.3.0',
|
||||
'authent-external/3.3.0',
|
||||
'authent-ldap/3.3.0',
|
||||
'authent-local/3.3.0',
|
||||
'combodo-backoffice-darkmoon-theme/3.3.0',
|
||||
'combodo-backoffice-fullmoon-high-contrast-theme/3.3.0',
|
||||
'combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/3.3.0',
|
||||
'combodo-backoffice-fullmoon-tritanopia-theme/3.3.0',
|
||||
'itop-attachments/3.3.0',
|
||||
'itop-backup/3.3.0',
|
||||
'itop-config/3.3.0',
|
||||
'itop-files-information/3.3.0',
|
||||
'itop-portal-base/3.3.0',
|
||||
'itop-portal/3.3.0',
|
||||
'itop-profiles-itil/3.3.0',
|
||||
'itop-sla-computation/3.3.0',
|
||||
'itop-structure/3.3.0',
|
||||
'itop-themes-compat/3.3.0',
|
||||
'itop-tickets/3.3.0',
|
||||
'itop-welcome-itil/3.3.0',
|
||||
'combodo-db-tools/3.3.0',
|
||||
'itop-config-mgmt/3.3.0',
|
||||
'itop-core-update/3.3.0',
|
||||
'itop-datacenter-mgmt/3.3.0',
|
||||
'itop-endusers-devices/3.3.0',
|
||||
'itop-faq-light/3.3.0',
|
||||
'itop-hub-connector/3.3.0',
|
||||
'itop-knownerror-mgmt/3.3.0',
|
||||
'itop-oauth-client/3.3.0',
|
||||
'itop-request-mgmt/3.3.0',
|
||||
'itop-service-mgmt/3.3.0',
|
||||
'itop-storage-mgmt/3.3.0',
|
||||
'itop-virtualization-mgmt/3.3.0',
|
||||
'itop-bridge-cmdb-services/3.3.0',
|
||||
'itop-bridge-cmdb-ticket/3.3.0',
|
||||
'itop-bridge-datacenter-mgmt-services/3.3.0',
|
||||
'itop-bridge-endusers-devices-services/3.3.0',
|
||||
'itop-bridge-storage-mgmt-services/3.3.0',
|
||||
'itop-bridge-virtualization-mgmt-services/3.3.0',
|
||||
'itop-bridge-virtualization-storage/3.3.0',
|
||||
'itop-change-mgmt/3.3.0',
|
||||
];
|
||||
$this->assertEquals($aExpected, $aInstalledModules);
|
||||
}
|
||||
|
||||
//integration test
|
||||
public function testGetModulesWithXmlInstallationFile_UsualCustomerPackagesWithITIL()
|
||||
{
|
||||
$aSearchDirs = $this->GivenModuleDiscoveryInit();
|
||||
|
||||
$aInstalledModules = InstallationChoicesToModuleConverter::GetInstance()->GetModules(
|
||||
$this->GivenItilChoices(),
|
||||
$aSearchDirs,
|
||||
__DIR__.'/ressources/installation.xml'
|
||||
);
|
||||
|
||||
$aExpected = [
|
||||
'authent-cas/3.3.0',
|
||||
'authent-external/3.3.0',
|
||||
'authent-ldap/3.3.0',
|
||||
'authent-local/3.3.0',
|
||||
'combodo-backoffice-darkmoon-theme/3.3.0',
|
||||
'combodo-backoffice-fullmoon-high-contrast-theme/3.3.0',
|
||||
'combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/3.3.0',
|
||||
'combodo-backoffice-fullmoon-tritanopia-theme/3.3.0',
|
||||
'itop-attachments/3.3.0',
|
||||
'itop-backup/3.3.0',
|
||||
'itop-config/3.3.0',
|
||||
'itop-files-information/3.3.0',
|
||||
'itop-portal-base/3.3.0',
|
||||
'itop-portal/3.3.0',
|
||||
'itop-profiles-itil/3.3.0',
|
||||
'itop-sla-computation/3.3.0',
|
||||
'itop-structure/3.3.0',
|
||||
'itop-themes-compat/3.3.0',
|
||||
'itop-tickets/3.3.0',
|
||||
'itop-welcome-itil/3.3.0',
|
||||
'combodo-db-tools/3.3.0',
|
||||
'itop-config-mgmt/3.3.0',
|
||||
'itop-core-update/3.3.0',
|
||||
'itop-datacenter-mgmt/3.3.0',
|
||||
'itop-endusers-devices/3.3.0',
|
||||
'itop-hub-connector/3.3.0',
|
||||
'itop-incident-mgmt-itil/3.3.0',
|
||||
'itop-oauth-client/3.3.0',
|
||||
'itop-request-mgmt-itil/3.3.0',
|
||||
'itop-service-mgmt/3.3.0',
|
||||
'itop-storage-mgmt/3.3.0',
|
||||
'itop-virtualization-mgmt/3.3.0',
|
||||
'itop-bridge-cmdb-services/3.3.0',
|
||||
'itop-bridge-cmdb-ticket/3.3.0',
|
||||
'itop-bridge-datacenter-mgmt-services/3.3.0',
|
||||
'itop-bridge-endusers-devices-services/3.3.0',
|
||||
'itop-bridge-storage-mgmt-services/3.3.0',
|
||||
'itop-bridge-virtualization-mgmt-services/3.3.0',
|
||||
'itop-bridge-virtualization-storage/3.3.0',
|
||||
'itop-change-mgmt-itil/3.3.0',
|
||||
'itop-full-itil/3.3.0',
|
||||
];
|
||||
$this->assertEquals($aExpected, $aInstalledModules);
|
||||
}
|
||||
|
||||
//integration test
|
||||
public function testGetModulesWithXmlInstallationFile_LegacyPackages()
|
||||
{
|
||||
$aSearchDirs = $this->GivenModuleDiscoveryInit();
|
||||
|
||||
//no choices means all default ones...
|
||||
$aNoInstallationChoices = [];
|
||||
|
||||
$aInstalledModules = InstallationChoicesToModuleConverter::GetInstance()->GetModules(
|
||||
$aNoInstallationChoices,
|
||||
$aSearchDirs
|
||||
);
|
||||
|
||||
$aExpected = [
|
||||
'authent-cas/3.3.0',
|
||||
'authent-external/3.3.0',
|
||||
'authent-ldap/3.3.0',
|
||||
'authent-local/3.3.0',
|
||||
'combodo-backoffice-darkmoon-theme/3.3.0',
|
||||
'combodo-backoffice-fullmoon-high-contrast-theme/3.3.0',
|
||||
'combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/3.3.0',
|
||||
'combodo-backoffice-fullmoon-tritanopia-theme/3.3.0',
|
||||
'itop-backup/3.3.0',
|
||||
'itop-config/3.3.0',
|
||||
'itop-files-information/3.3.0',
|
||||
'itop-portal-base/3.3.0',
|
||||
'itop-profiles-itil/3.3.0',
|
||||
'itop-sla-computation/3.3.0',
|
||||
'itop-structure/3.3.0',
|
||||
'itop-welcome-itil/3.3.0',
|
||||
];
|
||||
$this->assertEquals($aExpected, $aInstalledModules);
|
||||
}
|
||||
|
||||
public function testIsDefaultModule_RootModuleShouldNeverBeDefault()
|
||||
{
|
||||
$sModuleId = ROOT_MODULE;
|
||||
$aModuleInfo = ['category' => 'authentication', 'visible' => false];
|
||||
$this->assertFalse($this->CallIsDefault($sModuleId, $aModuleInfo));
|
||||
}
|
||||
|
||||
public function testIsDefaultModule_AutoselectShouldNeverBeDefault()
|
||||
{
|
||||
$sModuleId = 'autoselect_module';
|
||||
$aModuleInfo = ['category' => 'authentication', 'visible' => false, 'auto_select' => true];
|
||||
$this->assertFalse($this->CallIsDefault($sModuleId, $aModuleInfo));
|
||||
}
|
||||
|
||||
public function testIsDefaultModule_AuthenticationModuleShouldBeDefault()
|
||||
{
|
||||
$sModuleId = 'authentication_module';
|
||||
$aModuleInfo = ['category' => 'authentication', 'visible' => true];
|
||||
$this->assertTrue($this->CallIsDefault($sModuleId, $aModuleInfo));
|
||||
}
|
||||
|
||||
public function testIsDefaultModule_HiddenModuleShouldBeDefault()
|
||||
{
|
||||
$sModuleId = 'hidden_module';
|
||||
$aModuleInfo = ['category' => 'business', 'visible' => false];
|
||||
$this->assertTrue($this->CallIsDefault($sModuleId, $aModuleInfo));
|
||||
}
|
||||
|
||||
public function testIsDefaultModule_NonModuleDefaultCase()
|
||||
{
|
||||
$sModuleId = 'any_module';
|
||||
$aModuleInfo = ['category' => 'business', 'visible' => true];
|
||||
$this->assertFalse($this->CallIsDefault($sModuleId, $aModuleInfo));
|
||||
}
|
||||
|
||||
private function CallIsDefault($sModuleId, $aModuleInfo): bool
|
||||
{
|
||||
return $this->InvokeNonPublicMethod(InstallationChoicesToModuleConverter::class, 'IsDefaultModule', InstallationChoicesToModuleConverter::GetInstance(), [$sModuleId, $aModuleInfo]);
|
||||
}
|
||||
|
||||
public function testIsAutoSelectedModule_RootModuleShouldNeverBeAutoSelect()
|
||||
{
|
||||
$sModuleId = ROOT_MODULE;
|
||||
$aModuleInfo = ['auto_select' => true];
|
||||
$this->assertFalse($this->CallIsAutoSelectedModule([], $sModuleId, $aModuleInfo));
|
||||
}
|
||||
|
||||
public function testIsAutoSelectedModule_NoAutoselectByDefault()
|
||||
{
|
||||
$sModuleId = 'autoselect_module';
|
||||
$aModuleInfo = [];
|
||||
$this->assertFalse($this->CallIsAutoSelectedModule([], $sModuleId, $aModuleInfo));
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
* cf DependencyExpression dedicated tests
|
||||
*/
|
||||
public function testIsAutoSelectedModule_UseInstalledModulesForComputation()
|
||||
{
|
||||
$sModuleId = "any_module";
|
||||
$aModuleInfo = ['auto_select' => 'SetupInfo::ModuleIsSelected("a") && SetupInfo::ModuleIsSelected("b")'];
|
||||
$aInstalledModules = ['a' => true, 'b' => true];
|
||||
$this->assertTrue($this->CallIsAutoSelectedModule($aInstalledModules, $sModuleId, $aModuleInfo));
|
||||
}
|
||||
|
||||
private function CallIsAutoSelectedModule($aInstalledModules, $sModuleId, $aModuleInfo): bool
|
||||
{
|
||||
return $this->InvokeNonPublicMethod(InstallationChoicesToModuleConverter::class, 'IsAutoSelectedModule', InstallationChoicesToModuleConverter::GetInstance(), [$aInstalledModules, $sModuleId, $aModuleInfo]);
|
||||
}
|
||||
|
||||
public function testProcessInstallationChoices_Default()
|
||||
{
|
||||
$aRes = [];
|
||||
$aInstallationDescription = $this->GivenInstallationChoiceDescription();
|
||||
|
||||
$this->CallGetModuleNamesFromInstallationChoices([], $aInstallationDescription, $aRes);
|
||||
|
||||
$aExpected = [
|
||||
'combodo-backoffice-darkmoon-theme' => true,
|
||||
'combodo-backoffice-fullmoon-high-contrast-theme' => true,
|
||||
'combodo-backoffice-fullmoon-protanopia-deuteranopia-theme' => true,
|
||||
'combodo-backoffice-fullmoon-tritanopia-theme' => true,
|
||||
'itop-attachments' => true,
|
||||
'itop-backup' => true,
|
||||
'itop-config' => true,
|
||||
'itop-files-information' => true,
|
||||
'itop-profiles-itil' => true,
|
||||
'itop-structure' => true,
|
||||
'itop-themes-compat' => true,
|
||||
'itop-tickets' => true,
|
||||
'itop-welcome-itil' => true,
|
||||
'combodo-db-tools' => true,
|
||||
'itop-config-mgmt' => true,
|
||||
'itop-core-update' => true,
|
||||
'itop-hub-connector' => true,
|
||||
'itop-oauth-client' => true,
|
||||
'combodo-password-expiration' => true,
|
||||
'combodo-webhook-integration' => true,
|
||||
'combodo-my-account-user-info' => true,
|
||||
'authent-token' => true,
|
||||
];
|
||||
$this->assertEquals($aExpected, $aRes);
|
||||
}
|
||||
|
||||
public function testProcessInstallationChoices_NonItilChoices()
|
||||
{
|
||||
$aRes = [];
|
||||
$aInstallationDescription = $this->GivenInstallationChoiceDescription();
|
||||
|
||||
$this->CallGetModuleNamesFromInstallationChoices($this->GivenNonItilChoices(), $aInstallationDescription, $aRes);
|
||||
|
||||
$aExpected = [
|
||||
'combodo-backoffice-darkmoon-theme' => true,
|
||||
'combodo-backoffice-fullmoon-high-contrast-theme' => true,
|
||||
'combodo-backoffice-fullmoon-protanopia-deuteranopia-theme' => true,
|
||||
'combodo-backoffice-fullmoon-tritanopia-theme' => true,
|
||||
'itop-attachments' => true,
|
||||
'itop-backup' => true,
|
||||
'itop-config' => true,
|
||||
'itop-files-information' => true,
|
||||
'itop-profiles-itil' => true,
|
||||
'itop-structure' => true,
|
||||
'itop-themes-compat' => true,
|
||||
'itop-tickets' => true,
|
||||
'itop-welcome-itil' => true,
|
||||
'combodo-db-tools' => true,
|
||||
'itop-config-mgmt' => true,
|
||||
'itop-core-update' => true,
|
||||
'itop-hub-connector' => true,
|
||||
'itop-oauth-client' => true,
|
||||
'combodo-password-expiration' => true,
|
||||
'combodo-webhook-integration' => true,
|
||||
'combodo-my-account-user-info' => true,
|
||||
'authent-token' => true,
|
||||
'itop-datacenter-mgmt' => true,
|
||||
'itop-endusers-devices' => true,
|
||||
'itop-storage-mgmt' => true,
|
||||
'itop-virtualization-mgmt' => true,
|
||||
'itop-service-mgmt' => true,
|
||||
'itop-request-mgmt' => true,
|
||||
'itop-portal' => true,
|
||||
'itop-portal-base' => true,
|
||||
'itop-change-mgmt' => true,
|
||||
'itop-faq-light' => true,
|
||||
'itop-knownerror-mgmt' => true,
|
||||
];
|
||||
$this->assertEquals($aExpected, $aRes);
|
||||
}
|
||||
|
||||
public function testProcessInstallationChoices_ItilChoices()
|
||||
{
|
||||
$aRes = [];
|
||||
$aInstallationDescription = $this->GivenInstallationChoiceDescription();
|
||||
|
||||
$this->CallGetModuleNamesFromInstallationChoices($this->GivenItilChoices(), $aInstallationDescription, $aRes);
|
||||
|
||||
$aExpected = [
|
||||
'combodo-backoffice-darkmoon-theme' => true,
|
||||
'combodo-backoffice-fullmoon-high-contrast-theme' => true,
|
||||
'combodo-backoffice-fullmoon-protanopia-deuteranopia-theme' => true,
|
||||
'combodo-backoffice-fullmoon-tritanopia-theme' => true,
|
||||
'itop-attachments' => true,
|
||||
'itop-backup' => true,
|
||||
'itop-config' => true,
|
||||
'itop-files-information' => true,
|
||||
'itop-profiles-itil' => true,
|
||||
'itop-structure' => true,
|
||||
'itop-themes-compat' => true,
|
||||
'itop-tickets' => true,
|
||||
'itop-welcome-itil' => true,
|
||||
'combodo-db-tools' => true,
|
||||
'itop-config-mgmt' => true,
|
||||
'itop-core-update' => true,
|
||||
'itop-hub-connector' => true,
|
||||
'itop-oauth-client' => true,
|
||||
'combodo-password-expiration' => true,
|
||||
'combodo-webhook-integration' => true,
|
||||
'combodo-my-account-user-info' => true,
|
||||
'authent-token' => true,
|
||||
'itop-datacenter-mgmt' => true,
|
||||
'itop-endusers-devices' => true,
|
||||
'itop-storage-mgmt' => true,
|
||||
'itop-virtualization-mgmt' => true,
|
||||
'itop-service-mgmt' => true,
|
||||
'itop-portal' => true,
|
||||
'itop-portal-base' => true,
|
||||
'itop-request-mgmt-itil' => true,
|
||||
'itop-incident-mgmt-itil' => true,
|
||||
'itop-change-mgmt-itil' => true,
|
||||
];
|
||||
$this->assertEquals($aExpected, $aRes);
|
||||
}
|
||||
|
||||
private function CallGetModuleNamesFromInstallationChoices(array $aInstallationChoices, array $aInstallationDescription, array &$aModuleNames)
|
||||
{
|
||||
$this->InvokeNonPublicMethod(
|
||||
InstallationChoicesToModuleConverter::class,
|
||||
'GetModuleNamesFromInstallationChoices',
|
||||
InstallationChoicesToModuleConverter::GetInstance(),
|
||||
[$aInstallationChoices, $aInstallationDescription, &$aModuleNames]
|
||||
);
|
||||
}
|
||||
|
||||
private function GivenInstallationChoiceDescription(): array
|
||||
{
|
||||
$oXMLParameters = new XMLParameters(__DIR__."/ressources/installation.xml");
|
||||
return $oXMLParameters->Get('steps', []);
|
||||
}
|
||||
|
||||
private function GivenAllModules(): array
|
||||
{
|
||||
return json_decode(file_get_contents(__DIR__.'/ressources/available_modules.json'), true);
|
||||
}
|
||||
|
||||
private function GivenNonItilChoices(): array
|
||||
{
|
||||
return [
|
||||
'itop-config-mgmt-core',
|
||||
'itop-config-mgmt-datacenter',
|
||||
'itop-config-mgmt-end-user',
|
||||
'itop-config-mgmt-storage',
|
||||
'itop-config-mgmt-virtualization',
|
||||
'itop-service-mgmt-enterprise',
|
||||
'itop-ticket-mgmt-simple-ticket',
|
||||
'itop-ticket-mgmt-simple-ticket-enhanced-portal',
|
||||
'itop-change-mgmt-simple',
|
||||
'itop-kown-error-mgmt',
|
||||
];
|
||||
}
|
||||
|
||||
private function GivenItilChoices(): array
|
||||
{
|
||||
return [
|
||||
'itop-config-mgmt-datacenter',
|
||||
'itop-config-mgmt-end-user',
|
||||
'itop-config-mgmt-storage',
|
||||
'itop-config-mgmt-virtualization',
|
||||
'itop-service-mgmt-enterprise',
|
||||
'itop-ticket-mgmt-itil',
|
||||
'itop-ticket-mgmt-itil-user-request',
|
||||
'itop-ticket-mgmt-itil-incident',
|
||||
'itop-ticket-mgmt-itil-enhanced-portal',
|
||||
'itop-change-mgmt-itil',
|
||||
'itop-config-mgmt-core',
|
||||
|
||||
];
|
||||
}
|
||||
|
||||
private function GivenModuleDiscoveryInit(): array
|
||||
{
|
||||
$aSearchDirs = [APPROOT.'datamodels/2.x'];
|
||||
$this->SetNonPublicStaticProperty(ModuleDiscovery::class, 'm_aSearchDirs', $aSearchDirs);
|
||||
$aAllModules = $this->GivenAllModules();
|
||||
$this->SetNonPublicStaticProperty(ModuleDiscovery::class, 'm_aModules', $aAllModules);
|
||||
return $aSearchDirs;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,230 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<installation>
|
||||
<steps type="array">
|
||||
<step>
|
||||
<title>Configuration Management options</title>
|
||||
<description><![CDATA[<h2>The options below allow you to configure the type of elements that are to be managed inside iTop.</h2>]]></description>
|
||||
<banner>/images/icons/icons8-apps-tab.svg</banner>
|
||||
<options type="array">
|
||||
<choice>
|
||||
<extension_code>itop-config-mgmt-core</extension_code>
|
||||
<title>Configuration Management Core</title>
|
||||
<description>All the base objects that are mandatory in the iTop CMDB: Organizations, Locations, Teams, Persons, etc.</description>
|
||||
<modules type="array">
|
||||
<module>combodo-backoffice-darkmoon-theme</module>
|
||||
<module>combodo-backoffice-fullmoon-high-contrast-theme</module>
|
||||
<module>combodo-backoffice-fullmoon-protanopia-deuteranopia-theme</module>
|
||||
<module>combodo-backoffice-fullmoon-tritanopia-theme</module>
|
||||
<module>combodo-db-tools</module>
|
||||
<module>combodo-password-expiration</module>
|
||||
<module>combodo-webhook-integration</module>
|
||||
<module>itop-attachments</module>
|
||||
<module>itop-backup</module>
|
||||
<module>itop-config</module>
|
||||
<module>itop-config-mgmt</module>
|
||||
<module>itop-core-update</module>
|
||||
<module>itop-files-information</module>
|
||||
<module>itop-hub-connector</module>
|
||||
<module>itop-oauth-client</module>
|
||||
<module>itop-profiles-itil</module>
|
||||
<module>itop-structure</module>
|
||||
<module>itop-themes-compat</module>
|
||||
<module>itop-tickets</module>
|
||||
<module>itop-welcome-itil</module>
|
||||
<module>combodo-my-account-user-info</module>
|
||||
<module>authent-token</module>
|
||||
</modules>
|
||||
<mandatory>true</mandatory>
|
||||
</choice>
|
||||
<choice>
|
||||
<extension_code>itop-config-mgmt-datacenter</extension_code>
|
||||
<title>Data Center Devices</title>
|
||||
<description>Manage Data Center devices such as Racks, Enclosures, PDUs, etc.</description>
|
||||
<modules type="array">
|
||||
<module>itop-datacenter-mgmt</module>
|
||||
</modules>
|
||||
<default>true</default>
|
||||
</choice>
|
||||
<choice>
|
||||
<extension_code>itop-config-mgmt-end-user</extension_code>
|
||||
<title>End-User Devices</title>
|
||||
<description>Manage devices related to end-users: PCs, Phones, Tablets, etc.</description>
|
||||
<modules type="array">
|
||||
<module>itop-endusers-devices</module>
|
||||
</modules>
|
||||
<default>true</default>
|
||||
</choice>
|
||||
<choice>
|
||||
<extension_code>itop-config-mgmt-storage</extension_code>
|
||||
<title>Storage Devices</title>
|
||||
<description>Manage storage devices such as NAS, SAN Switches, Tape Libraries and Tapes, etc.</description>
|
||||
<modules type="array">
|
||||
<module>itop-storage-mgmt</module>
|
||||
</modules>
|
||||
<default>true</default>
|
||||
</choice>
|
||||
<choice>
|
||||
<extension_code>itop-config-mgmt-virtualization</extension_code>
|
||||
<title>Virtualization</title>
|
||||
<description>Manage Hypervisors, Virtual Machines and Farms.</description>
|
||||
<modules type="array">
|
||||
<module>itop-virtualization-mgmt</module>
|
||||
</modules>
|
||||
<default>true</default>
|
||||
</choice>
|
||||
</options>
|
||||
</step>
|
||||
<step>
|
||||
<title>Service Management options</title>
|
||||
<description><![CDATA[<h2>Select the choice that best describes the relationships between the services and the IT infrastructure in your IT environment.</h2>]]></description>
|
||||
<banner>/images/icons/icons8-services.svg</banner>
|
||||
<alternatives type="array">
|
||||
<choice>
|
||||
<extension_code>itop-service-mgmt-enterprise</extension_code>
|
||||
<title>Service Management for Enterprises</title>
|
||||
<description>Select this option if the IT delivers services based on a shared infrastructure. For example if different organizations within your company subscribe to services (like Mail and Print services) delivered by a single shared backend.</description>
|
||||
<modules type="array">
|
||||
<module>itop-service-mgmt</module>
|
||||
</modules>
|
||||
<default>true</default>
|
||||
</choice>
|
||||
<choice>
|
||||
<extension_code>itop-service-mgmt-service-provider</extension_code>
|
||||
<title>Service Management for Service Providers</title>
|
||||
<description>Select this option if the IT manages the infrastructure of independent customers. This is the most flexible model, since the services can be delivered with a mix of shared and customer specific infrastructure devices.</description>
|
||||
<modules type="array">
|
||||
<module>itop-service-mgmt-provider</module>
|
||||
</modules>
|
||||
</choice>
|
||||
</alternatives>
|
||||
</step>
|
||||
<step>
|
||||
<title>Tickets Management options</title>
|
||||
<description><![CDATA[<h2>Select the type of tickets you want to use in order to respond to user requests and incidents.</h2>]]></description>
|
||||
<banner>/images/icons/icons8-discussion-forum.svg</banner>
|
||||
<alternatives type="array">
|
||||
<choice>
|
||||
<extension_code>itop-ticket-mgmt-simple-ticket</extension_code>
|
||||
<title>Simple Ticket Management</title>
|
||||
<description>Select this option to use one single type of tickets for all kind of requests.</description>
|
||||
<modules type="array">
|
||||
<module>itop-request-mgmt</module>
|
||||
</modules>
|
||||
<default>true</default>
|
||||
<sub_options>
|
||||
<options type="array">
|
||||
<choice>
|
||||
<extension_code>itop-ticket-mgmt-simple-ticket-enhanced-portal</extension_code>
|
||||
<title>Customer Portal</title>
|
||||
<description><![CDATA[Modern & responsive portal for the end-users]]></description>
|
||||
<modules type="array">
|
||||
<module>itop-portal</module>
|
||||
<module>itop-portal-base</module>
|
||||
</modules>
|
||||
<default>true</default>
|
||||
</choice>
|
||||
</options>
|
||||
</sub_options>
|
||||
</choice>
|
||||
<choice>
|
||||
<extension_code>itop-ticket-mgmt-itil</extension_code>
|
||||
<title>ITIL Compliant Tickets Management</title>
|
||||
<description>Select this option to have different types of ticket for managing user requests and incidents. Each type of ticket has a specific life cycle and specific fields</description>
|
||||
<sub_options>
|
||||
<options type="array">
|
||||
<choice>
|
||||
<extension_code>itop-ticket-mgmt-itil-user-request</extension_code>
|
||||
<title>User Request Management</title>
|
||||
<description>Manage User Request tickets in iTop</description>
|
||||
<modules type="array">
|
||||
<module>itop-request-mgmt-itil</module>
|
||||
</modules>
|
||||
</choice>
|
||||
<choice>
|
||||
<extension_code>itop-ticket-mgmt-itil-incident</extension_code>
|
||||
<title>Incident Management</title>
|
||||
<description>Manage Incidents tickets in iTop</description>
|
||||
<modules type="array">
|
||||
<module>itop-incident-mgmt-itil</module>
|
||||
</modules>
|
||||
</choice>
|
||||
<choice>
|
||||
<extension_code>itop-ticket-mgmt-itil-enhanced-portal</extension_code>
|
||||
<title>Customer Portal</title>
|
||||
<description><![CDATA[Modern & responsive portal for the end-users]]></description>
|
||||
<modules type="array">
|
||||
<module>itop-portal</module>
|
||||
<module>itop-portal-base</module>
|
||||
</modules>
|
||||
<default>true</default>
|
||||
</choice>
|
||||
</options>
|
||||
</sub_options>
|
||||
</choice>
|
||||
<choice>
|
||||
<extension_code>itop-ticket-mgmt-none</extension_code>
|
||||
<title>No Tickets Management</title>
|
||||
<description>Don't manage incidents or user requests in iTop</description>
|
||||
<modules type="array">
|
||||
</modules>
|
||||
</choice>
|
||||
</alternatives>
|
||||
</step>
|
||||
<step>
|
||||
<title>Change Management options</title>
|
||||
<description><![CDATA[<h2>Select the type of tickets you want to use in order to manage changes to the IT infrastructure.</h2>]]></description>
|
||||
<banner>/images/icons/icons8-change.svg</banner>
|
||||
<alternatives type="array">
|
||||
<choice>
|
||||
<extension_code>itop-change-mgmt-simple</extension_code>
|
||||
<title>Simple Change Management</title>
|
||||
<description>Select this option to use one type of ticket for all kind of changes.</description>
|
||||
<modules type="array">
|
||||
<module>itop-change-mgmt</module>
|
||||
</modules>
|
||||
<default>true</default>
|
||||
</choice>
|
||||
<choice>
|
||||
<extension_code>itop-change-mgmt-itil</extension_code>
|
||||
<title>ITIL Change Management</title>
|
||||
<description>Select this option to use Normal/Routine/Emergency change tickets.</description>
|
||||
<modules type="array">
|
||||
<module>itop-change-mgmt-itil</module>
|
||||
</modules>
|
||||
</choice>
|
||||
<choice>
|
||||
<extension_code>itop-change-mgmt-none</extension_code>
|
||||
<title>No Change Management</title>
|
||||
<description>Don't manage changes in iTop</description>
|
||||
<modules type="array">
|
||||
</modules>
|
||||
</choice>
|
||||
</alternatives>
|
||||
</step>
|
||||
<step>
|
||||
<title>Additional ITIL tickets</title>
|
||||
<description><![CDATA[<h2>Pick from the list below the additional ITIL processes that are to be implemented in iTop.</h2>]]></description>
|
||||
<banner>/images/icons/icons8-important-book.svg</banner>
|
||||
<options type="array">
|
||||
<choice>
|
||||
<!-- Extension code has a typo but fixing it would remove that setup option for all existing iTop -->
|
||||
<extension_code>itop-kown-error-mgmt</extension_code>
|
||||
<title>Known Errors Management and FAQ</title>
|
||||
<description>Select this option to track "Known Errors" and FAQs in iTop.</description>
|
||||
<modules type="array">
|
||||
<module>itop-faq-light</module>
|
||||
<module>itop-knownerror-mgmt</module>
|
||||
</modules>
|
||||
</choice>
|
||||
<choice>
|
||||
<extension_code>itop-problem-mgmt</extension_code>
|
||||
<title>Problem Management</title>
|
||||
<description>Select this option track "Problems" in iTop.</description>
|
||||
<modules type="array">
|
||||
<module>itop-problem-mgmt</module>
|
||||
</modules>
|
||||
</choice>
|
||||
</options>
|
||||
</step>
|
||||
</steps>
|
||||
</installation>
|
||||
@@ -0,0 +1 @@
|
||||
{"itop-config-mgmt":{"label":"Configuration+Management+customized+for+Combodo+IT(CMDB)","value":"2.7.0"},"itop-icalendar-action":{"label":"Calendar+Invitations","value":"1.1.0"},"itop-fence":{"label":"iTop+Fence","value":"1.1.2"},"authent-ldap":{"label":"User+authentication+based+on+LDAP","value":"3.2.1"},"itop-faq-light":{"label":"Frequently+Asked+Questions+Database","value":"3.2.1"},"authent-local":{"label":"User+authentication+based+on+the+local+DB","value":"3.2.1"},"combodo-custom-hyperlinks":{"label":"Hyperlinks+configurator","value":"1.1.3"},"authent-token":{"label":"User+authentication+by+token","value":"2.2.1"},"itop-service-mgmt":{"label":"Service+Management+Customized+for+Combodo+IT(services,+SLAs,+contracts)","value":"2.7.0"},"combodo-impersonate":{"label":"Impersonate+user+for+support","value":"1.2.1"},"combodo-hybridauth":{"label":"oAuth\/OpenID+authentication","value":"1.2.4"},"combodo-login-page":{"label":"Combodo+login+page","value":"2.1.0"},"itop-core-update":{"label":"iTop+Core+Update","value":"3.2.1"},"itop-communications":{"label":"Communications+to+the+Customers","value":"1.3.4"},"itsm-designer-connector":{"label":"ITSM+Designer+Connector","value":"1.8.3"},"authent-external":{"label":"External+user+authentication","value":"3.2.1"},"itop-object-copier":{"label":"Object+copier","value":"1.4.5"},"combodo-backoffice-compact-themes":{"label":"Backoffice:+compact+themes","value":"1.0.1"},"data-localizer":{"label":"Data+localizer","value":"1.3.4"},"combodo-support-portal":{"label":"Combodo+Support+Portal","value":"3.0.1"},"combodo-calendar-view":{"label":"Calendar+View","value":"2.2.1"},"combodo-email-synchro":{"label":"Tickets+synchronization+via+e-mail","value":"3.8.2"},"combodo-webhook-integration":{"label":"Webhook+integrations","value":"1.4.1"},"combodo-notify-on-expiration":{"label":"Notify+on+expiration","value":"1.0.4"},"combodo-db-tools":{"label":"Database+maintenance+tools","value":"3.2.1"},"precanned-replies":{"label":"Helpdesk+Precanned+Replies","value":"1.4.0"},"combodo-dokuwiki-portal-brick":{"label":"Docuwiki+brick+(Portal)","value":"1.2.0"},"itop-rh-mgmt":{"label":"Human+Resource+Management","value":"2.7.0"},"itop-request-mgmt":{"label":"User+request+management+(Service+Desk)","value":"2.7.0"},"customer-survey":{"label":"Customer+Survey","value":"2.5.5"},"itop-standard-email-synchro":{"label":"Ticket+Creation+from+Emails+(Standard)","value":"3.8.2"},"itop-system-information":{"label":"System+information","value":"1.2.6"},"itop-sales-mgmt":{"label":"Sales+Management","value":"2.7.0"},"combodo-password-expiration":{"label":"Password+Expiration+Enforcement","value":"1.0.0"},"combodo-workflow-graphical-view":{"label":"Workflow+graphical+view","value":"1.1.3"},"combodo-itsm-master":{"label":"Data+master+for+the+ITSM+Designer","value":"2.7.0"},"combodo-email-tickets":{"label":"Tickets+Creation+from+Emails+for+Combodo","value":"2.7.0"},"itop-training-mgmt":{"label":"Training+Management","value":"2.7.0"},"precanned-replies-pro":{"label":"Helpdesk+Precanned+Replies+Extension","value":"1.2.0"},"combodo-fulltext-search":{"label":"Enhanced+global+search","value":"2.0.0"},"itop-request-template":{"label":"Customized+Request+Forms","value":"2.3.6"},"itop-rest-data-push":{"label":"Data+push+(based+on+standard+REST+services)","value":"1.0.2"},"combodo-kpi-logger":{"label":"KPI+logger","value":"1.0.3"},"itop-incident-mgmt":{"label":"Incident+Management","value":"2.7.0"},"combodo-my-account-user-info":{"label":"User+info+for+MyAccount+module","value":"1.0.0"},"email-reply":{"label":"Send+Ticket+Log+Updates+by+Email","value":"1.4.5"},"itop-attachments":{"label":"Tickets+Attachments","value":"3.2.1"},"itop-log-mgmt":{"label":"iTop+Log+management","value":"2.0.8"},"itop-ui-copypaste":{"label":"CopyPaste+UI+Component","value":"1.0.0"}}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,642 @@
|
||||
[
|
||||
{
|
||||
"0": "330",
|
||||
"id": "330",
|
||||
"1": "iTop",
|
||||
"name": "iTop",
|
||||
"2": "3.3.0-dev-svn",
|
||||
"version": "3.3.0-dev-svn",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nBuilt on $WCNOW$",
|
||||
"comment": "Done by the setup program\nBuilt on $WCNOW$",
|
||||
"5": "0",
|
||||
"parent_id": "0",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "331",
|
||||
"id": "331",
|
||||
"1": "authent-cas",
|
||||
"name": "authent-cas",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nMandatory\nVisible (during the setup)",
|
||||
"comment": "Done by the setup program\nMandatory\nVisible (during the setup)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "332",
|
||||
"id": "332",
|
||||
"1": "authent-external",
|
||||
"name": "authent-external",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "333",
|
||||
"id": "333",
|
||||
"1": "authent-ldap",
|
||||
"name": "authent-ldap",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "334",
|
||||
"id": "334",
|
||||
"1": "authent-local",
|
||||
"name": "authent-local",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nMandatory\nVisible (during the setup)",
|
||||
"comment": "Done by the setup program\nMandatory\nVisible (during the setup)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "335",
|
||||
"id": "335",
|
||||
"1": "combodo-backoffice-darkmoon-theme",
|
||||
"name": "combodo-backoffice-darkmoon-theme",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"comment": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "336",
|
||||
"id": "336",
|
||||
"1": "combodo-backoffice-fullmoon-high-contrast-theme",
|
||||
"name": "combodo-backoffice-fullmoon-high-contrast-theme",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"comment": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "337",
|
||||
"id": "337",
|
||||
"1": "combodo-backoffice-fullmoon-protanopia-deuteranopia-theme",
|
||||
"name": "combodo-backoffice-fullmoon-protanopia-deuteranopia-theme",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"comment": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "338",
|
||||
"id": "338",
|
||||
"1": "combodo-backoffice-fullmoon-tritanopia-theme",
|
||||
"name": "combodo-backoffice-fullmoon-tritanopia-theme",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"comment": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "339",
|
||||
"id": "339",
|
||||
"1": "itop-backup",
|
||||
"name": "itop-backup",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"comment": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "340",
|
||||
"id": "340",
|
||||
"1": "itop-config",
|
||||
"name": "itop-config",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"comment": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "341",
|
||||
"id": "341",
|
||||
"1": "itop-files-information",
|
||||
"name": "itop-files-information",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nHidden (selected automatically)",
|
||||
"comment": "Done by the setup program\nOptional\nHidden (selected automatically)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "342",
|
||||
"id": "342",
|
||||
"1": "itop-portal-base",
|
||||
"name": "itop-portal-base",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"comment": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "343",
|
||||
"id": "343",
|
||||
"1": "itop-profiles-itil",
|
||||
"name": "itop-profiles-itil",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"comment": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "344",
|
||||
"id": "344",
|
||||
"1": "itop-sla-computation",
|
||||
"name": "itop-sla-computation",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"comment": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "345",
|
||||
"id": "345",
|
||||
"1": "itop-structure",
|
||||
"name": "itop-structure",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"comment": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "346",
|
||||
"id": "346",
|
||||
"1": "itop-welcome-itil",
|
||||
"name": "itop-welcome-itil",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"comment": "Done by the setup program\nMandatory\nHidden (selected automatically)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "347",
|
||||
"id": "347",
|
||||
"1": "itop-config-mgmt",
|
||||
"name": "itop-config-mgmt",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-structure\/2.7.1",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-structure\/2.7.1",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "348",
|
||||
"id": "348",
|
||||
"1": "itop-attachments",
|
||||
"name": "itop-attachments",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "349",
|
||||
"id": "349",
|
||||
"1": "itop-tickets",
|
||||
"name": "itop-tickets",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-structure\/2.7.1",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-structure\/2.7.1",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "350",
|
||||
"id": "350",
|
||||
"1": "combodo-db-tools",
|
||||
"name": "combodo-db-tools",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-structure\/3.0.0",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-structure\/3.0.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "351",
|
||||
"id": "351",
|
||||
"1": "itop-core-update",
|
||||
"name": "itop-core-update",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-files-information\/2.7.0\nDepends on module: combodo-db-tools\/2.7.0",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-files-information\/2.7.0\nDepends on module: combodo-db-tools\/2.7.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "352",
|
||||
"id": "352",
|
||||
"1": "itop-hub-connector",
|
||||
"name": "itop-hub-connector",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-config-mgmt\/2.4.0",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-config-mgmt\/2.4.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "353",
|
||||
"id": "353",
|
||||
"1": "itop-oauth-client",
|
||||
"name": "itop-oauth-client",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-welcome-itil\/3.1.0,",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-welcome-itil\/3.1.0,",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "354",
|
||||
"id": "354",
|
||||
"1": "itop-themes-compat",
|
||||
"name": "itop-themes-compat",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-structure\/3.1.0",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-structure\/3.1.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "355",
|
||||
"id": "355",
|
||||
"1": "itop-datacenter-mgmt",
|
||||
"name": "itop-datacenter-mgmt",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-config-mgmt\/2.2.0",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-config-mgmt\/2.2.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "356",
|
||||
"id": "356",
|
||||
"1": "itop-endusers-devices",
|
||||
"name": "itop-endusers-devices",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-config-mgmt\/2.2.0",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-config-mgmt\/2.2.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "357",
|
||||
"id": "357",
|
||||
"1": "itop-storage-mgmt",
|
||||
"name": "itop-storage-mgmt",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-config-mgmt\/2.4.0",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-config-mgmt\/2.4.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "358",
|
||||
"id": "358",
|
||||
"1": "itop-virtualization-mgmt",
|
||||
"name": "itop-virtualization-mgmt",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-config-mgmt\/2.4.0",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-config-mgmt\/2.4.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "359",
|
||||
"id": "359",
|
||||
"1": "itop-bridge-cmdb-ticket",
|
||||
"name": "itop-bridge-cmdb-ticket",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nHidden (selected automatically)\nDepends on module: itop-config-mgmt\/2.7.1\nDepends on module: itop-tickets\/2.7.0",
|
||||
"comment": "Done by the setup program\nOptional\nHidden (selected automatically)\nDepends on module: itop-config-mgmt\/2.7.1\nDepends on module: itop-tickets\/2.7.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "360",
|
||||
"id": "360",
|
||||
"1": "itop-bridge-virtualization-storage",
|
||||
"name": "itop-bridge-virtualization-storage",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nHidden (selected automatically)\nDepends on module: itop-storage-mgmt\/2.2.0\nDepends on module: itop-virtualization-mgmt\/2.2.0",
|
||||
"comment": "Done by the setup program\nOptional\nHidden (selected automatically)\nDepends on module: itop-storage-mgmt\/2.2.0\nDepends on module: itop-virtualization-mgmt\/2.2.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "361",
|
||||
"id": "361",
|
||||
"1": "itop-service-mgmt",
|
||||
"name": "itop-service-mgmt",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-tickets\/2.0.0",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-tickets\/2.0.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "362",
|
||||
"id": "362",
|
||||
"1": "itop-bridge-cmdb-services",
|
||||
"name": "itop-bridge-cmdb-services",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nHidden (selected automatically)\nDepends on module: itop-config-mgmt\/2.7.1\nDepends on module: itop-service-mgmt\/2.7.1 || itop-service-mgmt-provider\/2.7.1",
|
||||
"comment": "Done by the setup program\nOptional\nHidden (selected automatically)\nDepends on module: itop-config-mgmt\/2.7.1\nDepends on module: itop-service-mgmt\/2.7.1 || itop-service-mgmt-provider\/2.7.1",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "363",
|
||||
"id": "363",
|
||||
"1": "itop-bridge-datacenter-mgmt-services",
|
||||
"name": "itop-bridge-datacenter-mgmt-services",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nHidden (selected automatically)\nDepends on module: itop-config-mgmt\/2.7.1\nDepends on module: itop-service-mgmt\/2.7.1 || itop-service-mgmt-provider\/2.7.1\nDepends on module: itop-datacenter-mgmt\/3.1.0",
|
||||
"comment": "Done by the setup program\nOptional\nHidden (selected automatically)\nDepends on module: itop-config-mgmt\/2.7.1\nDepends on module: itop-service-mgmt\/2.7.1 || itop-service-mgmt-provider\/2.7.1\nDepends on module: itop-datacenter-mgmt\/3.1.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "364",
|
||||
"id": "364",
|
||||
"1": "itop-bridge-endusers-devices-services",
|
||||
"name": "itop-bridge-endusers-devices-services",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nHidden (selected automatically)\nDepends on module: itop-config-mgmt\/2.7.1\nDepends on module: itop-service-mgmt\/2.7.1 || itop-service-mgmt-provider\/2.7.1\nDepends on module: itop-endusers-devices\/3.1.0",
|
||||
"comment": "Done by the setup program\nOptional\nHidden (selected automatically)\nDepends on module: itop-config-mgmt\/2.7.1\nDepends on module: itop-service-mgmt\/2.7.1 || itop-service-mgmt-provider\/2.7.1\nDepends on module: itop-endusers-devices\/3.1.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "365",
|
||||
"id": "365",
|
||||
"1": "itop-bridge-storage-mgmt-services",
|
||||
"name": "itop-bridge-storage-mgmt-services",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nHidden (selected automatically)\nDepends on module: itop-config-mgmt\/2.7.1\nDepends on module: itop-service-mgmt\/2.7.1 || itop-service-mgmt-provider\/2.7.1\nDepends on module: itop-storage-mgmt\/3.1.0",
|
||||
"comment": "Done by the setup program\nOptional\nHidden (selected automatically)\nDepends on module: itop-config-mgmt\/2.7.1\nDepends on module: itop-service-mgmt\/2.7.1 || itop-service-mgmt-provider\/2.7.1\nDepends on module: itop-storage-mgmt\/3.1.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "366",
|
||||
"id": "366",
|
||||
"1": "itop-bridge-virtualization-mgmt-services",
|
||||
"name": "itop-bridge-virtualization-mgmt-services",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nHidden (selected automatically)\nDepends on module: itop-config-mgmt\/2.7.1\nDepends on module: itop-service-mgmt\/2.7.1 || itop-service-mgmt-provider\/2.7.1\nDepends on module: itop-virtualization-mgmt\/3.1.0",
|
||||
"comment": "Done by the setup program\nOptional\nHidden (selected automatically)\nDepends on module: itop-config-mgmt\/2.7.1\nDepends on module: itop-service-mgmt\/2.7.1 || itop-service-mgmt-provider\/2.7.1\nDepends on module: itop-virtualization-mgmt\/3.1.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "367",
|
||||
"id": "367",
|
||||
"1": "itop-request-mgmt",
|
||||
"name": "itop-request-mgmt",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-tickets\/2.4.0",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-tickets\/2.4.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "368",
|
||||
"id": "368",
|
||||
"1": "itop-portal",
|
||||
"name": "itop-portal",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-portal-base\/2.7.0",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-portal-base\/2.7.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "369",
|
||||
"id": "369",
|
||||
"1": "itop-change-mgmt",
|
||||
"name": "itop-change-mgmt",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-config-mgmt\/2.2.0\nDepends on module: itop-tickets\/2.0.0",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)\nDepends on module: itop-config-mgmt\/2.2.0\nDepends on module: itop-tickets\/2.0.0",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,50 @@
|
||||
[
|
||||
{
|
||||
"0": "330",
|
||||
"id": "330",
|
||||
"1": "iTop",
|
||||
"name": "iTop",
|
||||
"2": "3.3.0-dev-svn",
|
||||
"version": "3.3.0-dev-svn",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nBuilt on $WCNOW$",
|
||||
"comment": "Done by the setup program\nBuilt on $WCNOW$",
|
||||
"5": "0",
|
||||
"parent_id": "0",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "331",
|
||||
"id": "331",
|
||||
"1": "mandatory_module",
|
||||
"name": "mandatory_module",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nMandatory\nVisible (during the setup)",
|
||||
"comment": "Done by the setup program\nMandatory\nVisible (during the setup)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "yes"
|
||||
},
|
||||
{
|
||||
"0": "332",
|
||||
"id": "332",
|
||||
"1": "optional_module",
|
||||
"name": "optional_module",
|
||||
"2": "3.3.0",
|
||||
"version": "3.3.0",
|
||||
"3": "2025-11-10 11:50:12",
|
||||
"installed": "2025-11-10 11:50:12",
|
||||
"4": "Done by the setup program\nOptional\nVisible (during the setup)",
|
||||
"comment": "Done by the setup program\nOptional\nVisible (during the setup)",
|
||||
"5": "330",
|
||||
"parent_id": "330",
|
||||
"6": "yes",
|
||||
"uninstallable": "no"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user