Posted on Leave a comment

Universal Dashboard – 2.4 Beta 1 – Dashboard Designer, Material UI Components and more!

Today, we’ve released PowerShell Universal Dashboard v2.4.0-beta1. You can download the latest from the PowerShell Gallery. There are tons of awesome features and bug fixes.

Install-Module UniversalDashboard -AllowPrerelease


Universal Dashboard Designer

One of the first feature requests I received for Universal Dashboard has now started to take shape. The Universal Dashboard Designer is beginning life as a drop and drop page creator. You can select from components, edit their properties and drag and drop them on the design surface. A script is generated in the background that will run in both Enterprise and Community. There is no need to write PowerShell script by hand to layout your dashboards with the UD Designer.

There is a hosted demo version of the designer available for you to play with now.

Hosted Demo Site

Give it a shot and provide us with feedback. If you install the UniversalDashboard module, you can run the designer locally be using Start-UDPageDesigner.

For a more complete run down on how to use the designer, take a look at my YouTube channel.

Material UI Components

In an effort to provide even more options to Universal Dashboard users, we have decided to start to migrate from the Materialize library to the Material UI library. In addition to having many more options, the library is also built on React so it integrates much easier into Universal Dashboard. Thanks to Alon Gvili, there are now 10 of the Material UI controls available in UD.

  • Avatar
  • Button
  • Card
  • Chip
  • Icon Button
  • Link
  • List
  • Paper
  • PDF
  • Typography

For example, if you’ve been using the existing New-UDCard, you’ll be happy to find the New-UDMUCard provides many more options for creating exceedingly customizable and beautiful widgets for your dashboards.

To see how this example was produced, visit the UD GitHub page.

Grid Layout

The UD designer takes advantage of the the New-UDGridLayout command to organize components on the page. Unlike New-UDRow and New-UDColumn you don’t nest the layout and controls directly. The layout is defined via Hashtables or JSON. The leads to cleaner scripts that don’t nest deeply with scriptblocks. Additionally, you can provide the ability for users to drag and drop components themselves. Their state is saved to local browser storage so, whenever they load the dashboard, they have the same layout.

Simplified Custom React Components

Due to enhancements in custom component support, the entire Material UI component library is defined with only JavaScript and PowerShell. There is no need for C# code. This PowerShell to React binding makes it extremely easy to introduce new components. UD can load webpack chunks, CSS and even source maps for custom component libraries.

If you want to see what this looks like, head over to the Universal Dashboard GitHub repository. Full documentation for this feature is in the works and you’ll see many more React controls being brought into the UD ecosystem.

Access to Authorization Policies

You can now access Authorization Policies via Get-UDAuthorizationPolicy. Rather than just limiting which page a user has access to, you can now use this cmdlet in your Endpoints to adjust how the page itself behaves based on that authorization policy. For example, you can check the authorization policy to see if a user is an admin and then hide a control based on if they are not.

Here’s an example of doing just that.

 $AuthPolicy = Get-UDAuthorizationPolicy 

if ($AuthPolicy -contains 'AdminPolicy') {
     New-UDHeading -Text "Only Admins See This"

For a full list of issues, please visit GitHub.

Posted on Leave a comment

PowerShell Universal Dashboard 2.3

PowerShell Universal Dashboard 2.3 is here! To download the new version, visit the PowerShell Gallery. For the full release notes, visit the documentation page. Read more about the new features below.

Custom Navigation

The hamburger menu can now be fully customized. You can use the New-UDSideNav and New-UDSideNavItem cmdlets to control exactly what appears in the menu. You can even hide the menu all together. Take advantage of the ability to create nested submenus, dividers and headers. The menu can also be fixed to avoid having to click the hamburger button.

Custom Navigation

File Fields for New-UDInput

You can now specify File types for New-UDInput. This means that users can upload files to your dashboard for processing. Upload CSVs, XML or JSON files and process them just as you would other input values.

File Upload for New-UDInput

Tabs Component

New-UDTabContainer and New-UDTab have been added to UD. You can now create static and dynamic tab controls for displaying data in UD.

New-UDTabContainer and New-UDTab

Enhanced JavaScript Element Support

Integrating custom JavaScript elements was problematic and incomplete in versions previous to 2.3. In this version the ability to create custom components is greatly enhanced. Components are now loaded with performance in mind. The JavaScript API for UD has been extended to provide access to server call backs and web sockets. The new tabs component was developed as a custom JavaScript element as an example of how to build custom components.

RegEx Matching of REST API URLs

You can now use RegEx matching in REST API URLs. This should allow for complete matching statements and supports integrating with services like the DSC PullServer.

New-UDEndpoint -Url "Nodes\(AgentId='(?<AgentId>.*)'\)" -Method PUT -Endpoint {
    param (
} -EvaluateUrlAsRegex

Nested IIS Site Support

Previous versions would not work when nesting a dashboard site underneath the root in IIS. 2.3 brings the ability to create nested dashboards under a single web site.

Nested IIS Site


Universal Dashboard Enterprise and the UD Data Visualization Pack now support sparklines. You can create simple line and bar charts with New-UDSparklines. These are great for nesting in tables or grids.