Giter Club home page Giter Club logo

universal-docs's Introduction

description
A single pane of glass for managing and delegating access to your automation environment.

About

PowerShell Universal Admin Console

A single pane of glass for managing and delegating access to your automation environment.

Universal provides an Administrator console, management REST API, PowerShell cmdlets and an idempotent configuration system using PowerShell scripts.

APIs

Expose scripts as RESTful HTTP APIs for integration from any platform.

Execute PowerShell with HTTP

Automation

Execute, schedule, secure and audit scripts in an easy-to-use, web-interface.

Run PowerShell Scripts

User Interfaces

Build web-based tools for internal users with highly interactive user interfaces that run your scripts.

Universal Dashboard

Hosting

PowerShell Universal is cross-platform and can be hosted on-premises, in the cloud or even on a Raspberry Pi.

Host in Azure

Security

Grant role-based access to different aspects of your automation environment with your choice of authentication and authorization integrations.

Security Settings

Desktop

Create desktop automation and user interfaces that integrate with features of Windows.

Development

Take advantage of rich development tools such as IntelliSense, code formatting, error checking and debugger integration without leaving your browser.

Development Tools in PowerShell Universal

Platform

Configure the platform to meet the needs of your environment.

Module Management

Community

Join the growing community of users managing their automation environments with PowerShell Universal.

Community Forums

Licensing

Universal is licensed per server. Visit our website for more information on pricing.

Many features of PowerShell Universal are free.

universal-docs's People

Contributors

adamdriscoll avatar asmith3006 avatar datatraveler1 avatar gitbook-bot avatar gpunktschmitz avatar omzig avatar u173487 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

universal-docs's Issues

Visually Search for Icons - Update to code example

Just to make this piece a bit more easy, as I was looking for icons and couldn't find the name of it.

`
New-UDDashboard -Title "Hello, World!" -Content {
New-UDTextbox -Id 'txtIconSearch' -Label 'Search'
New-UDButton -Text 'Search' -OnClick {
Sync-UDElement -Id 'icons'
}

New-UDElement -tag 'p' -Content {}

New-UDDynamic -Id 'icons' -Content {
        $Icons = [Enum]::GetNames([UniversalDashboard.Models.FontAwesomeIcons])
        $IconSearch = (Get-UDElement -Id 'txtIconSearch').value
        if ($null -ne $IconSearch -and $IconSearch -ne '')
        {
        $Icons = $Icons.where({ $_ -match $IconSearch})
    }

    foreach($icon in $icons) {
        New-UDChip -Label $icon -Icon (New-UDIcon -Icon $icon)
    }
}

}
`

Changed is the following line:

New-UDChip -Label $icon -Icon (New-UDIcon -Icon $icon)

Dark/Light theme support for the documentation site

It would be nice if the documentation would support dark/light theme as well!
At night, when I open the help link via the admin console I always briefly see stars xD I know you can also solve this via browser(AddIns) but would still be nice if it was integrated by default - of course only if not too complicated to implement and with no high priority!

Kind regards

Get-UAJobOutput : Only showing ERR output.

Version: 1.5.9
Expected: Returns stream output for a job. This includes error, warning, information, debug and verbose. Use Get-UAJobPipelineOutput to receive pipeline output.

Results: Only showing [ERR] messages under job output and skipping over [INF]

image

image

`New-PSUEndpoint -Url "/offboard/:account" -Method "Get" -Endpoint {
$Server = "redacted"
$AuthUser = Get-UAVariable -Name 'redacted'
$AppToken = 'redacted'

Connect-UAServer -ComputerName $Server -AppToken $AppToken

if (Get-aduser $Account) {
    try {
		Invoke-UAScript -Script $ScriptName -Account $Account -Credential $AuthUser -AppToken $AppToken | Tee-Object -Variable job | Wait-UAJob
        $CurrentJob = Get-UAJob -Id $Job.Id 
        Write-Output "User: $($CurrentJob.Identity.Name)"  

        if ($CurrentJob.Status -eq 'Completed') {
            Write-Output "Job #$($CurrentJob.id) Completed."

            $Pipeline = Get-UAJobPipelineOutput -Job $CurrentJob
            Write-Output "PipelineOutput: $Pipeline"
            $UAJobOutput = Get-UAJobOutput -Job $CurrentJob | Select-Object -Expand Message
            "UAJobOutput: $UAJobOutput"
        } 
        else {
            $Output = Get-UAJobOutput -Job $CurrentJob | Select-Object -Expand Message
            New-PSUApiResponse -StatusCode 400 -Body "Failed: $Output [ERROR: $_]"
        } 
    }
    catch {
        New-PSUApiResponse -StatusCode 400 -Body "Failed! [ERROR: $_]"
    }
}
else {
    New-PSUApiResponse -StatusCode 400 -Body "User: $Account not found"
}

} -Authentication -Role "Administrator"`

implement ant-menu-xxx

when creating a menu with ANT design, it seems that some of the styling is missing for example:
ant-menu-root
ant-menu-inline
ant-menu-light

please implement missing styling as per admin portal.

Ambiguous Information for Secret Variables

https://github.com/ironmansoftware/universal-docs/blob/master/platform/variables.md#creating-a-secret-variable

Values for secrets are stored within the current user's Windows Credential Manager instance. If you change users (such as running as a service account), the account will not have access to the previous user's secrets and you will need to add those secrets again.

This is a little bit ambiguous, what is the 'current user' in this context? The security principal of the Universal Windows Service? The security principal of the runspace (Eg: The Credential of a Automation Script, 'Run As' of a Dashboard, and the Windows Service for API Endpoints).

Given the Web UI does not prompt for credentials when adding a Secret Variable, one assumes it's the former of the above and then the secret is transferred into the runspace? I think these issues could be clarified.

@adamdriscoll

Enumerate more specifically the acceptable datatypes for data source input

The documentation states here that

PSCustomObjects, objects or hashtables [...] in order to display a chart [...]

Consider specifying if an array of these objects must always be passed even if the object count is 1.
Consider specifically providing the names of all datatypes accepted. For example, [PSCustomObject], [Hashtable], [?]

Show-UDToast -MessageSize parameter not changing unless -Title is set

I was messing around with showing a Toast message today, trying to get the -MessageSize parameter to work. The docs just state it is a string parameter, with no indication of what that string should be. I tried "small", "large", "XL", "48px", etc. but no joy. Then, just for grins I added a Title to the toast message, and tried the -TitleSize parameter. That one worked when I use "large". See below:

if (!$boolAuth) {Show-UDToast -Duration 2000 -Title "Oops" -TitleSize "large" -Message "You must login first!"; Invoke-UDRedirect "/login"}

image

After setting this, I noticed that -MessageSize now works:

if (!$boolAuth) {Show-UDToast -Duration 2000 -Title "Oops" -TitleSize "large" -Message "You must login first!" -MessageSize "large"; Invoke-UDRedirect "/login"}

image

Docs for running-as-a-service-account missing the HOW

https://docs.ironmansoftware.com/config/running-as-a-service-account

This page says what to configure for permissions of the service account.
But the page lacks HOW to set Universal Dashboard to use the service account.

For example, by default the dashboard seems to use NT AUTHORITY\SYSTEM as the account to run as (determined via whoami or ([System.Security.Principal.WindowsIdentity]::GetCurrent()).Name.

Again, this page doesn't tell me HOW to tell the UD to NOT run as NT AUTHORITY\SYSTEM and to instead run as a specified Service Account.

Endpoints: CWE-914 Warning

https://github.com/ironmansoftware/universal-docs/blob/master/api/endpoints.md#query-string-parameters should come with a warning regarding CWE-914: Improper Control of Dynamically-Identified Variables in order to promote good security practice:

Example of CWE-914:

New-PSUEndpoint -Url "/api/v1.0/CWE914Test" -Description "Vulnerable to CWE-914" -Endpoint {
	if($ChallengeInputData -eq "AcceptableInput") {
		$IsChallengePassed = $true
	}
	if($IsChallengePassed) {
		"Challenge passed. Here is Sensitive Information"
	} else {
		"Challenge not passed"
	}
}

Challenge is bypassed by http://localhost:5000/api/v1.0/CWE914Test?IsChallengePassed=1

Remediation by using https://github.com/ironmansoftware/universal-docs/blob/master/api/endpoints.md#param-block :

New-PSUEndpoint -Url "/api/v1.0/CWE914Test" -Description "Not Vulnerable to CWE-914" -Endpoint {
	Param(
		$ChallengeInputData
	)
	if($ChallengeInputData -eq "AcceptableInput") {
		$IsChallengePassed = $true
	}
	if($IsChallengePassed) {
		"Challenge passed. Here is Sensitive Information"
	} else {
		"Challenge not passed"
	}
}

@adamdriscoll

General update to documentation

I have seen a lot of questions on the forum that boil down to folks having a hard time telling what they should use for certain parameters on different elements. The documentation seems to be very high level in some cases, and leads to confusion. As just one example of this, parameters such as TitleSize and MessageSize for Show-UDToast simply say they are a String with no information on what would be an acceptable string to use ('48px', 'small', 'xl', etc.). Also, the example shown is very basic, using only 1 of the 26 different parameters. The online doc shows a few more examples, but still does not document complete use.

If I may suggest, something like this formatting for the github docs might lead to fewer forum requests:

Show-UDToast:

-MessageColor <DashboardColor>
    The text color of the message.
    
    Required?                    false
    Position?                    named
    Default value                
    Accept pipeline input?       false
    Accept wildcard characters?  false
    **Acceptable Input      "white", "brown", "pink", "#fff", "#0000ff", "#ff0066"**

-TitleColor <DashboardColor>
    The text color of the title.
    
    Required?                    false
    Position?                    named
    Default value                
    Accept pipeline input?       false
    Accept wildcard characters?  false
    **Acceptable Input      "white", "brown", "pink", "#fff", "#0000ff", "#ff0066"**
    
-TitleSize <String>
    The size of the title.
    
    Required?                    false
    Position?                    named
    Default value                
    Accept pipeline input?       false
    Accept wildcard characters?  false
    **Acceptable Input      Standard Sizes: "small", "medium", "large", or Pixel Size: "12", "48", "96"**
    
-Position <String>
    Where to display the toast.
    
    Required?                    false
    Position?                    named
    Default value                topRight
    Accept pipeline input?       false
    Accept wildcard characters?  false
    **Auto-Suggest?            true**
    **Acceptable Input      bottomCenter, bottomLeft, bottomRight, center, topCenter, topLeft, topRight**
         
-Overlay [<SwitchParameter>]
    Displays an overlay behind the toast.
    
    Required?                    false
    Position?                    named
    Default value                False
    Accept pipeline input?       false
    Accept wildcard characters?  false
    **-OverlayColor required when using this parameter**
          
-OverlayColor <DashboardColor>
    The color of the overlay.
    
    Required?                    **true if using -Overlay parameter**
    Position?                    named
    Default value                
    Accept pipeline input?       false
    Accept wildcard characters?  false
    **Acceptable Input      "white", "brown", "pink", "#fff", "#0000ff", "#ff0066"**

-------------------------- EXAMPLES --------------------------
#Simple Example
PS > Show-UDToast -Message 'Hello, World!'

#Comprehensive Example (formatting sucks when using backtick for line separation)
Show-UDToast -Position center
-Balloon -Broadcast
-ReplaceToast -RightToLeft
-Title "Oops" -TitleColor "brown" <# or "#0000ff" #>
-TitleSize "large" <# or "24px" #> -TransitionIn bounceInRight
-TransitionOut fadeInDown -Overlay
-OverlayColor "#0000ff" <# or "brown" #> -OverlayClose
-HideCloseButton -CloseOnClick
-CloseOnEscape -Message "!You must login first"
-MessageColor "#0000ff" <# or "brown" #> -MessageSize "24px" <# or "large" #>
-Duration 3000 -Icon "Ad"
-IconColor "#ff0066" <# or "pink" #> -Id "myToast"
-Persistent

New-UDEndpointSchedule correction

Startup: Cannot bind argument to parameter 'Schedule' because it is null.
This error comes up when starting UD with the following code pasted from the documentation:
$EndpointSchedule = New-UDEndpointSchedule -Every 10 -Minute $Endpoint = New-UDEndpoint -Schedule $Schedule -Endpoint {}

I think the -Schedule should be set to: $EndpointSchedule, not $Schedule which is not defined.

Update section - Dashboards Header Customization

Update the documentation here to correct a syntax issue. Reference.

Thank you jello for reporting this ๐Ÿ‘

Current documentation

New-UDDashboard -Content {
} -Navigation {
    New-UDList -Children {
        New-UDListItem -Label "Home"
        New-UDListItem -Label "Getting Started" -Children {
            New-UDListItem -Label "Installation" -OnClick {}
            New-UDListItem -Label "Usage" -OnClick {}
            New-UDListItem -Label "FAQs" -OnClick {}
            New-UDListItem -Label "System Requirements" -OnClick {}
            New-UDListItem -Label "Purchasing" -OnClick {}
        }
    }
} -NavigationLayout permanent

Suggested Update

New-UDDashboard -Content {
} -Navigation (
    New-UDList -Children {
        New-UDListItem -Label "Home"
        New-UDListItem -Label "Getting Started" -Children {
            New-UDListItem -Label "Installation" -OnClick {}
            New-UDListItem -Label "Usage" -OnClick {}
            New-UDListItem -Label "FAQs" -OnClick {}
            New-UDListItem -Label "System Requirements" -OnClick {}
            New-UDListItem -Label "Purchasing" -OnClick {}
        }
    }
) -NavigationLayout permanent

Card Component

Please include examples in docs on how to use the following Cmdlets:

  • New-UDCardToolbar
  • New-UDCardMedia

PSU Instance Migration Documentation

Even though migrating PowerShell Universal from one server to another should be relatively easily, it would be useful to have a doc page to inform users of what needs to be moved, if only to help with building a checklist for change management.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.