Skip to content
InvardiaInvardia
Why InvardiaProductsFeaturesPricingCommunity
Docs
All documentation
Product documentationPIM ManagerSecurityInsight
SettingsPIM Manager settingsSecurityInsight settingsEntra Policy Suite settings
ScriptsPIM Manager scriptsSecurityInsight scriptsEntra Policy Suite scriptsInvardia scripts
Error codesPIM Manager error codesSecurityInsight error codes
API and MCPPIM Manager APIPIM Manager MCP toolsSecurityInsight APISecurityInsight MCP tools
SecurityPIM Manager security packSecurityInsight security packEntra Policy Suite security pack
Network and designPIM Manager network guidesPIM Manager command wizardNetwork egressDesign your installationCalculate your cost
SupportSetup scriptsRemote support access
Search the docs
SupportAboutContactBook a demoCustomer portalDesign your installationFree Pro trial

SecurityInsight scripts

Install-SIUpdaterJob

Create or update the updater job (container install, Pro)

Part of the SecurityInsight release - not a standalone download; it runs via the product's own install command or the updater.

Purpose

Creates or updates caj-si-updater, the nightly job that keeps a container-hosted SecurityInsight Pro on the version its update ring approves, from Invardia's update platform: builds the updater image, ensures the updater's identity and creates or updates the job.

When to run it

Once per container install (normally through Upgrade-SIToPro); again to change the ring, the schedule or the sign-in.

Who may run it

KindRoleScopeWhy
azureRbacContributorthe resource group and the container registryto build the image, create the identity and create or update the job
azureRbacUser Access Administrator (or Owner) -- with -GrantSpnRolesthe resource group, the registry and the Key Vaultto grant the updater its roles
sqlthe SQL server's Entra admin -- with -GrantSqlthe Pro databaseto give the updater its database rights (Grant-SIUpdaterDatabase)
entraRolePrivileged Role Administrator (or Global Administrator) -- optionalthe tenantto give the updater's identity Directory.Read.All; without it the setup says so in one line and goes on

What it changes

WhereActionWhatPermission / roleScopeWhyUndo
Azure Container Registrycreatethe image si-updater:v<version>the job runs itdelete the repository si-updater in the registry
Azurecreatethe user-assigned identity uami-si-updater (when missing)the job pulls its image and reads its Key Vault references with itdelete the identity
Azure RBACgrantuami-si-updaterKey Vault Secrets User, AcrPullthe Key Vault and the registryto read the Key Vault references and pull the imageremove the role assignments
Azure RBACgrantthe updater's identity (only with -GrantSpnRoles)Contributor, Key Vault Secrets Officer, Key Vault Crypto Officerthe registry, the resource group and the Key Vaultto build in the registry, update the jobs, keep the licence and update state in the vault, and store the secrets the web app hands over (its hand-over key stays in the vault)remove the role assignments
Azure RBACremovethe Pro web app's identity (only with -GrantSpnRoles)Key Vault Secrets Officerexactly the Key Vault (an inherited assignment is never touched)the web app no longer writes secrets: it hands them to the updater, which stores themnot needed -- the web app has no use for the right
Entra application permissionsgrantthe updater's identity (uami-si-updater), through Grant-SIIdentity -Only (only what is missing, read back)Directory.Read.All (application, read-only)the tenantthe updater reads the tenant's size (users, groups, devices, service principals) to size the jobs; without it the jobs are sized for a large tenant and the setup goes onremove the app role assignment from the identity's service principal
Azure Container Appscreatethe job caj-si-updater (or an update of it): schedule, image, environment settings; legacy GitHub-token and feed settings removedthe nightly updatedelete the job caj-si-updater
Azure SQL (Pro)grantthe updater's identity (only with -GrantSql)db_datareader, db_datawriter, db_ddladmin, db_securityadminthe Pro databasean update applies the release's schema and grants firstdrop the database user

What it only reads

  • the registry, the identity, the Key Vault and the existing job

Parameters

ParameterRequiredDefaultWhat it does
-SubscriptionIdyes
-ResourceGroupNameyes
-AcrNameyes
-EnvNameyes
-KeyVaultNameyes
-CertSecretNameno
-SourceUrlSecretNamenoRETIRED (2026-10-06): SI's own update feed. Kept only to refuse it clearly -- Pro updates come only from Invardia.
-Sourceno'invardia'#240: where releases come from -- invardia (Pro) or community (#750 (b): the signed Community channel; the Community edition's default, chosen by itself when this copy has no Invardia client). 'feed' is refused: the feed is retired.
-SpnClientIdno
-TenantIdyes
-Scheduleno''18:30 in the LOCAL time of the install's Azure region (owner 2026-10-21), as the zone's UTC ticks -- e.g. westeurope '30 16,17 * * *' (summer + winter), westus '30 1,2 * * *'; the updater ends the tick that is not 18:30 there (setup/_shared/SI-NightlySchedule.ps1). Not given: computed from -Region, else from the location of the Container Apps environment (-EnvName), else of the resource group; a region not known = Danish time, said in one line. The job records the zone (tags si-nightly-schedule + si-nightly-region + si-nightly-1900), so the update's one-time steps have nothing to move. A -Schedule given is a timer of your own (no tags). The daily pipeline starts after it, 19:00 in the same zone.
-Regionno''
-UpdateRingno-1#350 / UPDATE-1.7: the update ring this environment pulls for (SI_UPDATER_RING, 0-3) -- daily, like every ring. -1 = not set: the updater uses the ring recorded for the install (cfg.InstallState 'Ring'); none = no pull.
-ProSqlServernoPro: the settings database the updater reads the customer's switches from and records its state in (the header shows it)
-ProSqlDatabaseno
-Blockno''
-JobNameno'caj-si-updater'
-IdentityNameno'uami-si-updater'
-WebAppNameno'ca-si-management'the Pro web app (its old Key Vault right is removed with -GrantSpnRoles: it hands secrets to the updater now)
-McpAppNameno'ca-si-mcp'the Pro MCP server (CR5 step 1: recorded on the job with the web app's and the job's own name, SI_UPDATER_MCP_APP)
-UseManagedIdentityno#350 / #222: the job signs in as its own user-assigned identity (uami-si-updater) -- no certificate in the vault, as PIM's ca-pim-update. -GrantSpnRoles then grants the IDENTITY what the SPN would get.
-GrantSpnRolesno
-GrantSqlno#352: give the updater's identity its database rights on the Pro database (as the caller -- the server's Entra admin)
-Imagenoan EXISTING job keeps the image it runs (it rolls itself to the version its ring approves); -Image sets one on purpose (a full reference, or a tag of si-updater in the registry). A new job gets the image this setup builds.
-Applyno

Preview with -WhatIf

Prints the plan; no image is built, no identity, role or job is created or changed.

Undo

Delete the job caj-si-updater and the identity uami-si-updater; remove the role assignments.

Network

It connects to: *.blob.core.windows.net, *.queue.core.windows.net, *.table.core.windows.net, *.vault.azure.net, 169.254.169.254, api.loganalytics, api.loganalytics.io, api.msrc.microsoft.com, api.security.microsoft.com, api.securitycenter.microsoft.com, api.securityplatform.microsoft.com, database.windows.net, entra.microsoft.com, graph.microsoft.com, invardia.com, licenses.nuget.org, login.microsoftonline.com, management.azure.com, monitor.azure.com, nvd.nist.gov, outlook.office.com, outlook.office365.com, portal.invardia.com, storage.azure.com, vault.azure.net, www.powershellgallery.com

How it runs

Part of the SecurityInsight release - not a standalone download; it runs via the product's own install command or the updater.

Release 3.0.79

Every script, identity and permission for your security review: SecurityInsight

InvardiaInvardia

See the risk. Control the access.

Products

PIM ManagerSecurityInsightEntra Policy SuiteAll featuresPricingFree 60-day Pro trialBook a demoWhy Invardia

Docs

DocumentationSearch the docsPIM Manager settingsSecurityInsight settingsPIM network guidesCommand wizardNetwork egressPIM Manager design configuratorSecurityInsight design configuratorDesign your installationCalculate your cost

Company

AboutContactCustomer portalSupportHow support worksHow updates reach youSupport in numbersSetup scriptsRemote support accessContact: info@invardia.com

Legal

Terms of saleLicence termsData processingPrivacyCookiesCompany information
© 2026 Invardia – a brand of 2LINKIT, founded and owned by Morten Knudsen · Strandvejen 21A, 6000 Kolding, Denmark · VAT DK39208032 · Contact: info@invardia.com