Skip to content

Commit 92d6515

Browse files
committed
track frontend version
write warnings when client version is out of date
1 parent 97c2d93 commit 92d6515

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/New-CippCoreRequest.ps1

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,21 @@ function New-CippCoreRequest {
1515
$FunctionName = 'Invoke-{0}' -f $Request.Params.CIPPEndpoint
1616
Write-Information "API Endpoint: $($Request.Params.CIPPEndpoint) | Frontend Version: $($Request.Headers.'X-CIPP-Version' ?? 'Not specified')"
1717

18+
if ($Request.Headers.'X-CIPP-Version') {
19+
$Table = Get-CippTable -tablename 'Version'
20+
$FrontendVer = Get-CIPPAzDataTableEntity @Table -Filter "PartitionKey eq 'Version' and RowKey eq 'frontend'"
21+
22+
if (!$FrontendVer -or ([semver]$FrontendVer.Version -lt [semver]$Request.Headers.'X-CIPP-Version')) {
23+
Add-CIPPAzDataTableEntity @Table -Entity ([pscustomobject]@{
24+
PartitionKey = 'Version'
25+
RowKey = 'frontend'
26+
Version = $Request.Headers.'X-CIPP-Version'
27+
}) -Force
28+
} elseif ([semver]$FrontendVer.Version -gt [semver]$Request.Headers.'X-CIPP-Version') {
29+
Write-Warning "Client version $($Request.Headers.'X-CIPP-Version') is older than the current frontend version $($FrontendVer.Version)"
30+
}
31+
}
32+
1833
$HttpTrigger = @{
1934
Request = [pscustomobject]($Request)
2035
TriggerMetadata = $TriggerMetadata

Modules/CIPPCore/Public/Get-CIPPTimerFunctions.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ function Get-CIPPTimerFunctions {
1010

1111
# Check running nodes
1212
$VersionTable = Get-CIPPTable -tablename 'Version'
13-
$Nodes = Get-CIPPAzDataTableEntity @VersionTable -Filter "PartitionKey eq 'Version' and RowKey ne 'Version'"
13+
$Nodes = Get-CIPPAzDataTableEntity @VersionTable -Filter "PartitionKey eq 'Version' and RowKey ne 'Version' and RowKey ne 'frontend'"
1414

1515
$FunctionName = $env:WEBSITE_SITE_NAME
1616
$MainFunctionVersion = ($Nodes | Where-Object { $_.RowKey -eq $FunctionName }).Version

0 commit comments

Comments
 (0)