fix: SAC ingest UTF-8 JSON body for Cyrillic (1.2.8-SAC)

Invoke-WebRequest now posts application/json; charset=utf-8 bytes

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
PTah
2026-05-28 10:05:49 +10:00
parent 71cb1fa9b6
commit 6c86e172b9
3 changed files with 12 additions and 6 deletions
+1 -1
View File
@@ -80,7 +80,7 @@ $script:MonitorLoopInitialized = $false
# строки ниже, если правки «мелкие» и вы не хотите менять отображаемую версию в логах). # строки ниже, если правки «мелкие» и вы не хотите менять отображаемую версию в логах).
# Рекомендация: при значимых релизах меняйте и $ScriptVersion, и version.txt одинаково; при только # Рекомендация: при значимых релизах меняйте и $ScriptVersion, и version.txt одинаково; при только
# исправлениях на шаре — достаточно поднять patch в version.txt (например 1.3.0.1). # исправлениях на шаре — достаточно поднять patch в version.txt (например 1.3.0.1).
$ScriptVersion = "1.2.7-SAC" $ScriptVersion = "1.2.8-SAC"
# Логи (все под InstallRoot) # Логи (все под InstallRoot)
$LogFile = Join-Path $script:InstallRoot "Logs\login_monitor.log" $LogFile = Join-Path $script:InstallRoot "Logs\login_monitor.log"
+9 -3
View File
@@ -4,9 +4,14 @@
.DESCRIPTION .DESCRIPTION
Dot-source после login_monitor.settings.ps1 и функции Write-Log. Dot-source после login_monitor.settings.ps1 и функции Write-Log.
Ожидает: $UseSAC, $SacUrl, $SacApiKey, $ScriptVersion, $script:InstallRoot. Ожидает: $UseSAC, $SacUrl, $SacApiKey, $ScriptVersion, $script:InstallRoot.
Release: 1.2.7-SAC (ingest HTTP 201/409/202). Release: 1.2.8-SAC (ingest UTF-8 body for Cyrillic summary/details).
#> #>
function Get-SacUtf8Bytes {
param([Parameter(Mandatory = $true)][string]$Text)
return (New-Object System.Text.UTF8Encoding $false).GetBytes($Text)
}
function Write-SacLog { function Write-SacLog {
param([string]$Message) param([string]$Message)
if (Get-Command Write-Log -ErrorAction SilentlyContinue) { if (Get-Command Write-Log -ErrorAction SilentlyContinue) {
@@ -222,10 +227,11 @@ function Invoke-SacPostPayload {
Invoke-SacTlsPrep Invoke-SacTlsPrep
$headers = @{ $headers = @{
Authorization = "Bearer $SacApiKey" Authorization = "Bearer $SacApiKey"
'Content-Type' = 'application/json' 'Content-Type' = 'application/json; charset=utf-8'
'Idempotency-Key' = $eventId 'Idempotency-Key' = $eventId
} }
$resp = Invoke-WebRequest -Uri $ingest -Method Post -Headers $headers -Body $JsonBody -UseBasicParsing -TimeoutSec $timeout $bodyBytes = Get-SacUtf8Bytes -Text $JsonBody
$resp = Invoke-WebRequest -Uri $ingest -Method Post -Headers $headers -Body $bodyBytes -UseBasicParsing -TimeoutSec $timeout
if ($resp.StatusCode -in 201, 409, 202) { if ($resp.StatusCode -in 201, 409, 202) {
Remove-SacSpoolFile -EventId $eventId Remove-SacSpoolFile -EventId $eventId
Reset-SacFailCount Reset-SacFailCount
+1 -1
View File
@@ -1 +1 @@
1.2.7-SAC 1.2.8-SAC