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 BearerToken
Your Databricks Bearer token to authenticate to your workspace (see User Settings in Datatbricks WebUI)
 
.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 = $false)][string]$BearerToken,    
        [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 -BearerToken $bearerToken -region $config.region -ScopeName $secretScope -SecretName $databricksSecret.Name -SecretValue $databricksSecret.Value -AllUserAccess
            }
        }
    }
}