modules/Definitions/Azure.Entro.psm1
|
Set-StrictMode -Version Latest function Get-EntroAzureOnboardingScriptPath { Import-Module (Join-Path (Split-Path $PSScriptRoot -Parent) 'IW.EntroCatalog.psm1') -Force -WarningAction SilentlyContinue Join-Path (Get-EntroConnectSkillRoot) 'integrations/microsoft-ecosystem/Entro-Azure-Onboarding.ps1' } function Register-AzureEntroDefinitions { Register-IntegrationWizardDefinition @{ Id = 'azure-entro' Platform = 'Azure' Product = 'Entro' CoreSwitch = 'Entro' CliName = 'az' Title = 'Entro Microsoft ecosystem integration' FolderName = 'Entro Microsoft' AccessLevels = @() AdminRoles = @('Global Administrator (Entro onboarding script)') OutputsHelp = 'Paste Environment nickname, Tenant ID, Client ID, and Client Secret at https://app.entro.security/admin/account/add/2' Inputs = @( @{ Name = 'EnvironmentNickname'; Source = 'Supply'; Prompt = 'Environment nickname'; Purpose = 'Label in Entro'; Required = $true } @{ Name = 'DisplayName'; Source = 'Supply'; Prompt = 'App display name'; Purpose = 'Entra application name'; Required = $false; Default = 'EntroSecurityApp' } @{ Name = 'OutputDirectory'; Source = 'Supply'; Prompt = 'Output directory'; Purpose = 'Wizard output directory'; Required = $false } ) Steps = { param($ctx) @( @{ Id = 'entro-azure-onboard' Title = 'Run Entro Azure onboarding' Kind = 'Ensure' Run = { param($c) $scriptPath = Get-EntroAzureOnboardingScriptPath if (-not (Test-Path -LiteralPath $scriptPath)) { throw "Entro Azure onboarding script not found: $scriptPath" } Write-Info "Launching Entro Azure onboarding menu (Global Administrator required)." & pwsh -NoProfile -File $scriptPath if ($LASTEXITCODE -and $LASTEXITCODE -ne 0) { throw "Entro-Azure-Onboarding.ps1 exited with code $LASTEXITCODE" } } BuildScript = { param($c) $scriptPath = Get-EntroAzureOnboardingScriptPath @" # Entro Azure onboarding (interactive menu) & pwsh -NoProfile -File '$($scriptPath -replace "'", "''")' "@ } } ) } OnRunComplete = { param($ctx) Write-Host '' Write-Host 'Entro handoff' -ForegroundColor Cyan Write-Host " Environment: $($ctx['EnvironmentNickname'])" Write-Host ' Tenant ID, Client ID, Client Secret: from onboarding output' Write-Host '' } } } Export-ModuleMember -Function Register-AzureEntroDefinitions, Get-EntroAzureOnboardingScriptPath |