Reverted Design Changes

This commit is contained in:
2025-11-07 21:32:15 -07:00
parent ccce8a80d2
commit 49e9631738

View File

@@ -1,13 +1,14 @@
# Borealis - Automation Platform Updater Script
[CmdletBinding()] [CmdletBinding()]
param() param(
[switch]$Trace
)
$scriptDir = Split-Path $MyInvocation.MyCommand.Path -Parent $scriptDir = Split-Path $MyInvocation.MyCommand.Path -Parent
$script:BorealisTlsInitialized = $false $script:BorealisTlsInitialized = $false
$script:BorealisTrustedThumbprints = @() $script:BorealisTrustedThumbprints = @()
$script:BorealisCallbackApplied = $false $script:BorealisCallbackApplied = $false
$script:AgentPythonHttpHelper = '' $script:AgentPythonHttpHelper = ''
$script:UpdateDebugEnabled = $Trace.IsPresent
$symbols = @{ $symbols = @{
Success = [char]0x2705 Success = [char]0x2705
Running = [char]0x23F3 Running = [char]0x23F3
@@ -24,9 +25,14 @@ function Write-UpdateLog {
if (-not $Message) { return } if (-not $Message) { return }
$timestamp = (Get-Date).ToString('yyyy-MM-dd HH:mm:ss')
$normalized = if ($Level) { $Level } else { 'INFO' } $normalized = if ($Level) { $Level } else { 'INFO' }
$normalized = $normalized.ToUpperInvariant() $normalized = $normalized.ToUpperInvariant()
if ($normalized -eq 'DEBUG' -and -not $script:UpdateDebugEnabled) {
return
}
if (-not $Color) { if (-not $Color) {
switch ($normalized) { switch ($normalized) {
'WARN' { $Color = 'Yellow' } 'WARN' { $Color = 'Yellow' }
@@ -37,7 +43,7 @@ function Write-UpdateLog {
} }
} }
$line = "[{0}] {1}" -f $normalized, $Message $line = "[{0}] [{1}] {2}" -f $timestamp, $normalized, $Message
if ($Color) { if ($Color) {
Write-Host $line -ForegroundColor $Color Write-Host $line -ForegroundColor $Color
} else { } else {
@@ -363,7 +369,7 @@ function Save-ServerCertificateCache {
try { try {
Set-Content -Path $targetPath -Value $CertificatePem -Encoding UTF8 Set-Content -Path $targetPath -Value $CertificatePem -Encoding UTF8
Write-UpdateLog ("Cached server certificate to {0}" -f $targetPath) 'INFO' Write-UpdateLog ("Saved Borealis Engine certificate to {0}" -f $targetPath) 'INFO'
return $targetPath return $targetPath
} catch { } catch {
Write-UpdateLog ("Failed to cache server certificate: {0}" -f $_.Exception.Message) 'WARN' Write-UpdateLog ("Failed to cache server certificate: {0}" -f $_.Exception.Message) 'WARN'
@@ -549,11 +555,11 @@ function Initialize-BorealisTlsContext {
$trusted = @() $trusted = @()
$cachedCertPath = Get-ExistingServerCertificatePath -AgentRoot $AgentRoot $cachedCertPath = Get-ExistingServerCertificatePath -AgentRoot $AgentRoot
if ($cachedCertPath) { if ($cachedCertPath) {
Write-UpdateLog ("Using cached TLS certificate: {0}" -f $cachedCertPath) 'INFO' Write-UpdateLog ("Attempting Borealis Engine connection using cached certificate: {0}" -f $cachedCertPath) 'INFO'
try { try {
$trusted += Get-CertificatesFromPem -Path $cachedCertPath $trusted += Get-CertificatesFromPem -Path $cachedCertPath
} catch { } catch {
Write-UpdateLog ("Failed to load cached TLS certificate: {0}" -f $_.Exception.Message) 'WARN' Write-UpdateLog ("Unable to load cached certificate; continuing without it ({0})." -f $_.Exception.Message) 'WARN'
} }
} }
@@ -564,7 +570,7 @@ function Initialize-BorealisTlsContext {
} else { } else {
$script:BorealisTrustedThumbprints = @() $script:BorealisTrustedThumbprints = @()
Write-Verbose "No Borealis TLS certificates located; loopback hosts will be allowed without CA verification." Write-Verbose "No Borealis TLS certificates located; loopback hosts will be allowed without CA verification."
Write-UpdateLog "No TLS certificates found; falling back to loopback-only allowance." 'WARN' Write-UpdateLog "No cached Borealis Engine certificate available yet; limiting TLS checks to loopback hosts." 'WARN'
} }
Ensure-BorealisCertificateValidator Ensure-BorealisCertificateValidator
@@ -829,9 +835,9 @@ function Invoke-AgentHttpRequest {
$cafile = Get-ExistingServerCertificatePath -AgentRoot $AgentRoot $cafile = Get-ExistingServerCertificatePath -AgentRoot $AgentRoot
if ($cafile) { if ($cafile) {
Write-UpdateLog ("Using cached TLS certificate for helper: {0}" -f $cafile) 'DEBUG' Write-UpdateLog ("Attempting to contact Borealis Engine using cached certificate: {0}" -f $cafile) 'INFO'
} else { } else {
Write-UpdateLog "No TLS bundle available; helper will skip certificate validation for this request." 'WARN' Write-UpdateLog "No cached Borealis Engine certificate found; establishing connection without validation." 'WARN'
} }
$payload = @{ $payload = @{
method = $Method method = $Method
@@ -1472,23 +1478,6 @@ function Sync-AgentHashRecord {
} }
} }
function Invoke-AgentHashSyncStep {
param(
[string]$ProjectRoot,
[string]$AgentRoot,
[string]$AgentHash,
[string]$ServerBaseUrl,
[string]$AgentId,
[string]$AgentGuid,
[string]$AuthToken,
[string]$BranchName
)
Run-Step "Update Borealis Engine device record" {
Sync-AgentHashRecord -ProjectRoot $ProjectRoot -AgentRoot $AgentRoot -AgentHash $AgentHash -ServerBaseUrl $ServerBaseUrl -AgentId $AgentId -AgentGuid $AgentGuid -AuthToken $AuthToken -BranchName $BranchName
}
}
function Invoke-BorealisUpdate { function Invoke-BorealisUpdate {
param( param(
[Parameter(Mandatory = $true)] [Parameter(Mandatory = $true)]
@@ -1663,13 +1652,8 @@ function Invoke-BorealisAgentUpdate {
} }
$authToken = $authContext.AccessToken $authToken = $authContext.AccessToken
$serverRepoInfo = $null Write-UpdateLog "Querying Borealis server for current repository hash." 'STEP'
Run-Step "Fetch Borealis Engine repository hash" { $serverRepoInfo = Get-ServerCurrentRepoHash -ServerBaseUrl $serverBaseUrl -AuthToken $authToken -AgentRoot $agentRoot
$serverRepoInfo = Get-ServerCurrentRepoHash -ServerBaseUrl $serverBaseUrl -AuthToken $authToken -AgentRoot $agentRoot
if (-not $serverRepoInfo) {
throw "Unable to retrieve repository hash from Borealis Engine."
}
}
$serverHash = '' $serverHash = ''
$serverBranch = 'main' $serverBranch = 'main'
if ($serverRepoInfo) { if ($serverRepoInfo) {
@@ -1713,7 +1697,7 @@ function Invoke-BorealisAgentUpdate {
} elseif (-not $needsUpdate) { } elseif (-not $needsUpdate) {
Write-Host "Local agent files already match the server repository hash." -ForegroundColor Green Write-Host "Local agent files already match the server repository hash." -ForegroundColor Green
Write-UpdateLog "Local agent hash matches remote; ensuring server record is updated." 'SUCCESS' Write-UpdateLog "Local agent hash matches remote; ensuring server record is updated." 'SUCCESS'
Invoke-AgentHashSyncStep -ProjectRoot $scriptDir -AgentRoot $agentRoot -AgentHash $serverHash -ServerBaseUrl $serverBaseUrl -AgentId $agentId -AgentGuid $agentGuid -AuthToken $authToken -BranchName $serverBranch Sync-AgentHashRecord -ProjectRoot $scriptDir -AgentRoot $agentRoot -AgentHash $serverHash -ServerBaseUrl $serverBaseUrl -AgentId $agentId -AgentGuid $agentGuid -AuthToken $authToken -BranchName $serverBranch
Write-Host "✅ Borealis - Automation Platform Already Up-to-Date" Write-Host "✅ Borealis - Automation Platform Already Up-to-Date"
return return
} else { } else {
@@ -1798,7 +1782,7 @@ function Invoke-BorealisAgentUpdate {
if ($newHash) { if ($newHash) {
Write-UpdateLog ("Final agent hash determined: {0}" -f $newHash) 'INFO' Write-UpdateLog ("Final agent hash determined: {0}" -f $newHash) 'INFO'
Invoke-AgentHashSyncStep -ProjectRoot $scriptDir -AgentRoot $agentRoot -AgentHash $newHash -ServerBaseUrl $serverBaseUrl -AgentId $agentId -AgentGuid $agentGuid -AuthToken $authToken -BranchName $serverBranch Sync-AgentHashRecord -ProjectRoot $scriptDir -AgentRoot $agentRoot -AgentHash $newHash -ServerBaseUrl $serverBaseUrl -AgentId $agentId -AgentGuid $agentGuid -AuthToken $authToken -BranchName $serverBranch
} else { } else {
Write-Host "Unable to determine repository hash for submission; server hash not updated." -ForegroundColor DarkYellow Write-Host "Unable to determine repository hash for submission; server hash not updated." -ForegroundColor DarkYellow
Write-UpdateLog "Unable to determine final agent hash; skipping submission." 'WARN' Write-UpdateLog "Unable to determine final agent hash; skipping submission." 'WARN'