Fix: Repository lookup on local path for ifw.repo.json
Fixes lookup for local ifw.repo.json, in case the path was specified with `ifw.repo.json` included, like `C:\icinga\stable\ifw.repo.json`
Fix: Icinga Director state not being saved on overview
In case the Icinga Director host is registered in the IMC over the Self-Service API, the menu is defaulting to the message "Do not register host" instead of displaying the correct configuration.
This is only a displaying issue and has no technical impact, but we still need to fix that.
Fix: Icinga environment corruption on Icinga Agent installation failure
In case the Icinga Agent could not be installed, regardless of the reason, we should not write any zone, api or other related config to the environment.
By doing so, we can corrupt the environment and make it impossible for the Icinga Agent to be installed in the future, unless we manually delete the folowing directories:
* `C:\ProgramData\icinga2`
* `C:\Program Files\ICINGA2`
* `C:\Program Files (x86)\ICINGA2` (only for x86 installations)
Fix: Repository component install from file share
The installation from file share locations will fail, in case no `LocalPath` is assigned to the repository configuration and is also failing by invalid escaping of the path.
This is now fixed as the `RemotePath` is the only one being required and in addition downloads from file shares of component packages is now working as intended.
Fix: IMC fails on Icinga Director Self-Service no Agent installation set
In case you are using the IMC and the Icinga Director Self-Service API, it can happen that once entered the Self-Service API key, the shell will only look like this:
```
Input (Default 0 and c ):
```
Without any other form content.
This occured, in case inside the Self-Service API config the entry `Installation Source` was set to `- no automatic installation -`.
This fix resolves the issue and renders the form including the settings correctly.
Fix: Plain Plugin Cmdlet execution on shell
Fixes plain execution of plugin Cmdlets on the PowerShell, which caused an exception of being thrown before, as no check command was assigned.
Feature: Adds support for JEA profiles
To improve security and to get rid of most permission errors on Windows, we are going to implement a JEA profile for Icinga for Windows, which will load Cmdlets and required core functionallity from the Icinga PowerShell Framework, to allow the execution of plugins and other tasks, but in general prevents any access to configuration Cmdlets.
Features: Adds extended Repository management to IMC
This will extend the current repository management within the Icinga Management Console, by allowing to list, remove, sort, enable and disable repositories.
Fix: Icinga file writer fails on input not matching string
In case we add non-string values into our Icinga file writer, the output may not what we have been expected.
To resolve this, we will add support for these default inputs:
* Hashtable -> JSON
* Array -> Listed output
* PSCustomObject -> JSON
* Everything else -> simple string conversion
Fix: File writer did not create non-existing files
Fixes newly implemented file writer, by creating files which were not existing prior to writing into them.
Fix: File writer could cause corruption on parallel read/write
In some cases it can happen, that files are being read and written in parallel, which might cause the file of being corrupted.
This will resolve the issue, as in case of file locks we now do longer modify the file, but wait for the lock being released.
Fix: Module file should always point to .psd1 instead of .psm1
We have to ensure with Icinga for Windows 1.6.0 that we always point to the `.psd1` file instead of the `.psm1` file, especially when working with the `icingapowershellservice`
Feature: Improves debug output on TCP handling
Improves debugging output on TCP handling, to provide separate messages for incoming message size, message bytes and the send message back to the client.
Fix: Framework environment variables not working with 1.6.0
Environment variables like `$IcingaEnums` or other similar variables were not exported with Icinga for Windows 1.6.0, causing several other modules and functions to fail.
Feature: Adds support for version names for snapshots
In order to easy manage different snapshot versions for different branches, we now support providing a name as version for **snapshot** packages only,
Example:
```powershell
Add-IcingaRepository -Name 'icinga-powershell-framework/doc/doc_rewrite' -RemotePath 'https://packages.icinga.com/IcingaForWindows/snapshot/icinga-powershell-framework/doc/doc_rewrite/ifw.repo.json';
Install-IcingaComponent -Name 'framework' -Version 'doc/doc_rewrite' -Snapshot -Force;
```