Ironman Software Forums
Continue the conversion on the Ironman Software forums. Chat with over 1000 users about PowerShell, PowerShell Universal, and PowerShell Pro Tools.
Ironman Software is pleased to announce another feature-packed PowerShell Universal release! Today, we’re releasing version 1.5 of the ultimate platform for building web-based IT tools. This release contains a variety of new features as well as bug fixes that we suggest all users considering upgrading to.
This blog post will cover some of the main features. To see a detailed demo of some of the notable highlight features, watch the following video or check out the full release notes:
https://docs.ironmansoftware.com/changelog
With PowerShell Universal 1.5, it’s now easier than ever to get started and develop by providing the capability to run the entire platform right from a single file. The Start-PSUServer
and Install-PSUServer
cmdlets can be used to install, configure, and run a Universal instance without having to create a rigid file structure.
Single-file hosting will automatically reload the PowerShell Universal configuration as you make changes to the file. You can try it yourself by running the following script.
$Path = Join-Path $Env:ProgramData "PowerShellUniversal"
Install-Module Universal
Install-PSUServer -LatestVersion -Path $Path
Start-PSUServer -Port 8080 -Configuration {
New-PSUEndpoint -Url '/hello' -Method GET -Endpoint {
'Hello'
}
New-PSUDashboard -Name 'Dashboard' -BaseUrl '/dashboard' -Framework 'UniversalDashboard:Latest' -Content {
New-UDDashboard -Title 'Hello, World' -Content {
New-UDForm -Content {
New-UDTextbox -Label 'Say Hi' -Id 'textbox'
} -OnSubmit {
Show-UDToast -Message $EventData.textbox
}
}
}
} -ExecutablePath (Join-Path $Path "Universal.Server.exe")
Learn more about single-file hosting on the documentation.
PowerShell Universal administrators now have a new and simple way to share data between APIs, Dashboards and Automation using server-wide caching. This feature provides a ubiquitous set of PowerShell cmdlets that can be used to Set and Get values that are instantly available to all of PowerShell Universal. This provides administrators a simple way to share data between components without needing to implement their own cache or storage solution.
Set-PSUCache -Key "CurrentDate" -Value (Get-Date)
Get-PSUCache -Key "CurrentDate"
Learn more about server-wide caching on the documentation.
We’ve spent a lot of time streamlining the configuration system to more consistently reload changes that you make while developing your PSU solution. The improved configuration system no longer relies on the database file and uses your PS1 files as the single source of truth for configuration within the platform. Configuration is now cached in-memory to provide the best performance possible.
We’ve improved the UI and API for generating app tokens to allow for creating tokens for alternate identities, roles and life times.
You can now run PowerShell Universal on your Mac. Mac OS builds are officially available for download.
Environments can now set custom PSModulePaths to allow for discovery of modules without having to enter the path of each module.
Login pages can now be customized to include custom logos and colors to provide consistent branding for your organization. You can define the login page within the loginPage.ps1
file or within your single-file configuration.
$LoginPage = @{
PrimaryColor = '#5c2751'
Title = 'DBATools Web Portal'
Copyright = 'DBATools 2020'
HeaderFontColor = white
HeaderColor = '#4bc0d9'
SecondaryColor = '#6457a6'
SecondaryFontColor = 'white'
Image = http://localhost:5000/images/dbatools.png
}
New-PSULoginPage @LoginPage
Learn more about custom login pages on the documentation.
APIs allow you to create REST endpoints using PowerShell.
We’ve added the ability to edit APIs directly in the UI after creating them.
Automation allows you to execute and schedule PowerShell scripts.
Triggers is a new Automation feature that allows PowerShell Universal administrators to configure automation jobs to start (“Trigger”) when certain events happen within PowerShell Universal. For example, this allows you to take action when jobs complete, the server starts, or dashboards stop. Triggers can be applied to specific resources or globally to implement global error handling, operational notifications, or change control/monitoring.
Learn more about triggers on the documentation.
We’ve added a new role to provide the ability to execute scripts in Automation but prevent the user from editing the script.
You can now configure per-script concurrent script execution limits to prevent particular scripts from running more than you define.
New-PSUScript -Name 'Script.ps1' -Path 'Script.ps1' -ConcurrentJobs 1
String arrays are now supported in param blocks and will display a multi-tag component within the UI to allow users to enter multiple string values.
param([string[]]$Array)
$Array
Dashboards allow you to create websites with PowerShell.
One of the most popular components of Universal Dashboard UDTable has received a series of enhancements that should greatly appeal to many users of Universal Dashboard.
This includes but is not limited to:
Get-UDElement
Learn more about UDTable on the documentation.
The PowerShell Universal Dashboard v3 framework is now published to the PowerShell Gallery for easier installation and a better developer experience when creating dashboards with PowerShell Universal.
Install-Module UniversalDashboard
Install-PSUServer
Start-PSUServer -Port 8080 -Content {
New-PSUDashboard -Name 'Dashboard' -BaseUrl '/' -Framework 'UniversalDashboard:Latest' -Content {
New-UDDashboard -Title 'Hello' -Content {
New-UDTypography -Text 'Hello, world!'
}
}
}
We’ve adapted the popular chart component from Universal Dashboard v2 and added it to our charts component library.
New-UDChartJSMonitor -LoadData {
Get-Random -Max 100 | Out-UDChartJSMonitorData
} -Labels "Random" -ChartBackgroundColor "#297741" -RefreshInterval 1
The new date and time component can be used for format date and time values to match the timezone of the user loading the dashboard.
New-UDDateTime -InputObject (Get-Date) -Format 'DD/MM/YYYY'
By default, new dashboards will now use the latest Universal Dashboard framework. This means that you have the option to leave this setting alone and during PowerShell Universal upgrades, the framework will also automatically upgrade.
Published folders can now define a default document. By being able to specify a default document on a published folder, you can now host static web pages with PowerShell Universal.
New-PSUPublishedFolder -Path C:\website -RequestPath /docs -DefaultDocument @("index.hml")
PowerShell Universal 1.5 is the best version of the platform yet. Start building web-based tools using PowerShell today.
Continue the conversion on the Ironman Software forums. Chat with over 1000 users about PowerShell, PowerShell Universal, and PowerShell Pro Tools.
Receive once-a-month updates about Ironman Software. You'll learn about our product updates and blogs related to PowerShell.