Private/Runtime/ConvertTo-OpenApiContextView.ps1
|
function ConvertTo-OpenApiContextView { <# .SYNOPSIS Returns a copy of a context that is safe to display: every secret is shown as ********. #> [CmdletBinding()] [OutputType([pscustomobject])] param( [Parameter(Mandatory)] [pscustomobject]$Context ) $mask = '********' $credentialView = $null if ($null -ne $Context.Credential) { $credentialView = "$($Context.Credential.UserName) / $mask" } $proxyCredentialView = $null if ($null -ne $Context.ProxyCredential) { $proxyCredentialView = "$($Context.ProxyCredential.UserName) / $mask" } $headerView = [ordered]@{} foreach ($key in $Context.Header.Keys) { if (Test-OpenApiSensitiveName -Name $key) { $headerView[$key] = $mask } else { $headerView[$key] = $Context.Header[$key] } } $apiKey = $null if ($null -ne $Context.ApiKey) { $apiKey = $mask } $bearer = $null if ($null -ne $Context.BearerToken) { $bearer = $mask } $clientSecret = $null if ($null -ne $Context.ClientSecret) { $clientSecret = $mask } return [pscustomobject]@{ PSTypeName = 'Tcs.OpenApi.Context' Service = $Context.Service BaseUri = $Context.BaseUri ApiKey = $apiKey Credential = $credentialView BearerToken = $bearer ClientId = $Context.ClientId ClientSecret = $clientSecret TokenUri = $Context.TokenUri Scope = $Context.Scope Header = $headerView TimeoutSec = $Context.TimeoutSec Proxy = $Context.Proxy ProxyCredential = $proxyCredentialView SkipCertificateCheck = $Context.SkipCertificateCheck MaxRetries = $Context.MaxRetries Persisted = $Context.Persisted } } |