Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Quinten

#1
Dear Forum!

We are trying to automate the creation of aliases using github actions with hosted runners. In powershell.
So far we have managed to create a blank alias.

$key='ourkey'
$secret='oursecret'

$credPair = "$($key):$($secret)"
$encodedCredentials = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($credPair))
$BasicAuthHeader = @{ Authorization = "Basic $encodedCredentials" }

$body = @{
    alias = @{
        enabled = 1
        name = "Alias1"
        type = "host"
        description = "testing"
        content = "1.1.1.1`n2.2.2.2"
    }
} | ConvertTo-Json -Depth 100 -Compress


$apiUri="/api/firewall/alias/additem"
$baseUri="http://1.2.3.4:80"
$uri=$baseUri+$apiUri
$method="post"
$result=Invoke-RestMethod -Uri $uri -Method $method -Headers $BasicAuthHeader -Body $body -UseBasicParsing -ContentType "application/json"
$result

result uuid
------ ----
saved  39873aaf-e467-484c-a13a-8c506489ecfa

This worked.

Through the GUI aliases can be added to other aliases.

The GUI version uses the /api/firewall/alias/setItem/UUID endpoint
The UUID can be retrieved for an alias name using "/api/firewall/alias/getAliasUUID/$aliasName" endpoint.

This is the payload we captured with the web browser, when using the GUI to add an alias to another alias.
{"alias":{"enabled":"1","name":"MainAlias","type":"host","proto":"","categories":"","updatefreq":"","content":"testalias\nAlias1","interface":"","counters":"0","description":""},"network_content":"Alias1,testalais","authgroup_content":""}

When we attempted to add into alias "MainAlias" the content "Alias1" to replicate what the GUI does, we receive

result
------
failed

Does anyone know how to do this using the API?