Functions/Set-DataBricksSecrets.ps1

<#
.SYNOPSIS
Sets Databricks Secrets.
 
.DESCRIPTION
Takes Secret Scopes from config, finds correspinding $env:vars and set Secrets on the Workspace.
 
.PARAMETER config
config passed in that includes secret scopes
 
.EXAMPLE
Set-DatabricksSecrets -BearerToken $bearerToken -config $config
 
.NOTES
Author: Sabin IO
 
#>
 
Function Set-DatabricksSecrets {  
    [cmdletbinding()]
    Param( 
        [parameter(Mandatory = $true)][psobject]$config
    )
    Write-Host "Setting secrets..."
    foreach ($secretScope in $config.secretScopes) {
        Write-Verbose "Finding all environment vars with prefix $secretScope"
        $databricksSecrets = Get-EnvironmentVariablesBySecretScope -secretScope $secretScope
        if ($databricksSecrets.count -eq 0) {
            Write-Warning "No secrets found with prefix of $secretScope"
        }
        else {
            Write-Verbose "$($databricksSecrets.count) secrets found. Setting on Workspace."
            foreach ($databricksSecret in $databricksSecrets) {
                Set-DatabricksSecret -ScopeName $secretScope -SecretName $databricksSecret.Name -SecretValue $databricksSecret.Value -AllUserAccess
            }
        }
    }
}