Public/func_Get-TokenValues.ps1
|
Function Get-TokenValues { [CmdletBinding()] Param( [Parameter(ValueFromPipeline = $true, Mandatory = $false)] [hashtable]$CdfConfig, [Parameter(Mandatory = $false)] [switch] $NoAlias, [Parameter(Mandatory = $false)] [switch] $NoOldAPIM ) $tokenValues = [ordered] @{} if ($false -eq $NoAlias -and $null -ne $CdfConfig.Service) { # These Aliases are short names for Commonly used attributes $tokenValues = [ordered] @{ PlatformKey = ($CdfConfig.Platform.Config.platformId + $CdfConfig.Platform.Config.instanceId) PlatformEnvKey = ($CdfConfig.Platform.Config.platformId + $CdfConfig.Platform.Config.instanceId + $CdfConfig.Platform.Env.nameId) ApplicationKey = ($CdfConfig.Application.Config.applicationId + $CdfConfig.Platform.Config.instanceId) ApplicationEnvKey = ($CdfConfig.Application.Config.applicationId + $CdfConfig.Platform.Config.instanceId + $CdfConfig.Application.Env.nameId) EnvRegion = $CdfConfig.Platform.Env.region EnvRegionCode = $CdfConfig.Platform.Env.regionCode EnvRegionName = $CdfConfig.Platform.Env.regionName EnvDefinitionId = $CdfConfig.Application.Env.definitionId EnvNameId = $CdfConfig.Application.Env.nameId EnvShortName = $CdfConfig.Application.Env.shortName DomainName = $CdfConfig.Domain.Config.domainName DomainStorageName = $CdfConfig.Domain.ResourceNames.storageAccountName ServiceName = $CdfConfig.Service.Config.serviceName ServiceGroup = $CdfConfig.Service.Config.serviceGroup ServiceType = $CdfConfig.Service.Config.serviceType ServiceTemplate = $CdfConfig.Service.Config.serviceTemplate } } if ($null -ne $env:GITHUB_RUN_ID) { $tokenValues += [ordered] @{ BuildRepo = $env:GITHUB_REPOSITORY BuildBranch = $env:GITHUB_REF_NAME BuildCommit = $env:GITHUB_SHA BuildPipeline = $env:GITHUB_WORKFLOW BuildRun = $env:GITHUB_RUN_ID } } elseif ($null -ne $env:BUILD_BUILDNUMBER) { $tokenValues += [ordered] @{ BuildRepo = $env:BUILD_REPOSITORY_NAME BuildBranch = $env:BUILD_SOURCEBRANCH BuildCommit = $env:BUILD_SOURCEVERSION BuildPipeline = $env:BUILD_DEFINITIONNAME BuildRun = $env:BUILD_BUILDNUMBER } } else { $azCtx = Get-AzContext -ErrorAction:SilentlyContinue -WarningAction:SilentlyContinue $tokenValues += [ordered] @{ BuildRepo = $(Split-Path -Leaf (git remote get-url origin)) BuildBranch = $(git branch --show-current) BuildCommit = $(git rev-parse --short HEAD) BuildPipeline = $azCtx ? $azCtx.Account.Id : 'local' BuildRun = "local" } } if ($false -eq $NoOldAPIM -and $null -ne $CdfConfig.Service) { # These Aliases are short names for Commonly used attributes $tokenValues += [ordered] @{ APIM_IDENTITY_CLIENT_ID = $CdfConfig.Application.Config.appIdentityClientId APIM_IDENTITY_PRINCIPAL_ID = $CdfConfig.Application.Config.appIdentityPrincipalId ENV_REGION = $CdfConfig.Application.Env.region ENV_REGION_CODE = $CdfConfig.Application.Env.regionCode ENV_REGION_NAME = $CdfConfig.Application.Env.regionName ENV_ID = $CdfConfig.Application.Env.definitionId ENV_NAME_ID = $CdfConfig.Application.Env.nameId ENV_SHORT_NAME = $CdfConfig.Application.Env.shortName ENV_PURPOSE = $CdfConfig.Application.Env.purpose ENV_QUALITY = $CdfConfig.Application.Env.quality PLATFORM_ID = $CdfConfig.Platform.Config.platformId PLATFORM_INSTANCE = $CdfConfig.Platform.Config.instanceId APPLICATION_ID = $CdfConfig.Application.Config.applicationId APPLICATION_INSTANCE = $CdfConfig.Application.Config.instanceId DOMAIN_NAME = $CdfConfig.Domain.Config.domainName SERVICE_NAME = $CdfConfig.Service.Config.serviceName SERVICE_GROUP = $CdfConfig.Service.Config.serviceGroup SERVICE_TYPE = $CdfConfig.Service.Config.serviceType SERVICE_TEMPLATE = $CdfConfig.Service.Config.serviceTemplate GITHUB_REPOSITORY = 'local' GITHUB_REF_NAME = 'local' GITHUB_SHA = 'local' GITHUB_WORKFLOW = 'local' GITHUB_RUN_NUMBER = 'local' } } if ($null -ne $CdfConfig.Platform) { $tokenValues += [ordered] @{ 'Platform.Config.TemplateScope' = $CdfConfig.Platform.Config.templateScope 'Platform.Config.TemplateVersion' = $CdfConfig.Platform.Config.templateVersion 'Platform.Config.PlatformId' = $CdfConfig.Platform.Config.platformId 'Platform.Config.InstanceId' = $CdfConfig.Platform.Config.instanceId 'Platform.Env.TenantId' = $CdfConfig.Platform.Env.tenantId 'Platform.Env.SubscriptionId' = $CdfConfig.Platform.Env.subscriptionId 'Platform.Env.Region' = $CdfConfig.Platform.Env.region 'Platform.Env.RegionCode' = $CdfConfig.Platform.Env.regionCode 'Platform.Env.RegionName' = $CdfConfig.Platform.Env.regionName 'Platform.Env.DefinitionId' = $CdfConfig.Platform.Env.definitionId 'Platform.Env.NameId' = $CdfConfig.Platform.Env.nameId 'Platform.Env.ShortName' = $CdfConfig.Platform.Env.shortName } } if ($null -ne $CdfConfig.Application) { $tokenValues += [ordered] @{ 'Application.Config.TemplateScope' = $CdfConfig.Application.Config.templateScope 'Application.Config.TemplateName' = $CdfConfig.Application.Config.templateName 'Application.Config.TemplateVersion' = $CdfConfig.Application.Config.templateVersion 'Application.Config.ApplicationId' = $CdfConfig.Application.Config.applicationId 'Application.Config.InstanceId' = $CdfConfig.Application.Config.instanceId 'Application.Env.TenantId' = $CdfConfig.Application.Env.tenantId 'Application.Env.SubscriptionId' = $CdfConfig.Application.Env.subscriptionId 'Application.Env.DefinitionId' = $CdfConfig.Application.Env.definitionId 'Application.Env.NameId' = $CdfConfig.Application.Env.nameId 'Application.Env.ShortName' = $CdfConfig.Application.Env.shortName 'Application.ResourceNames.AppResourceGroupName' = $CdfConfig.Application.ResourceNames.appResourceGroupName 'Application.ResourceNames.ApimName' = $CdfConfig.Application.ResourceNames.apimName } if ($CdfConfig.Application.Config.appIdentityClientId) { $tokenValues['Application.Config.AppIdentityClientId'] = $CdfConfig.Application.Config.appIdentityClientId } if ($CdfConfig.Application.Config.appIdentityPrincipalId) { $tokenValues['Application.Config.AppIdentityPrincipalId'] = $CdfConfig.Application.Config.appIdentityPrincipalId } } if ($null -ne $CdfConfig.Domain) { $tokenValues += [ordered] @{ 'Domain.Config.DomainName' = $CdfConfig.Domain.Config.domainName } } if ($null -ne $CdfConfig.Service) { $tokenValues += [ordered] @{ 'Service.Config.ServiceName' = $CdfConfig.Service.Config.serviceName 'Service.Config.ServiceGroup' = $CdfConfig.Service.Config.serviceGroup 'Service.Config.ServiceType' = $CdfConfig.Service.Config.serviceType 'Service.Config.ServiceTemplate' = $CdfConfig.Service.Config.serviceTemplate } } return $tokenValues } |