Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>AzAdvertizerNew to Visual Studio Code? Get it now.
AzAdvertizer

AzAdvertizer

AzAdvertizer

|
1 install
| (0) | Free
Azure Policy, RBAC role, Entra ID role and API permission, resource type and operation identifiers in Bicep, ARM, Terraform, PowerShell and YAML files become links and hovers to AzAdvertizer.net.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Azure Policy definitions, initiatives, RBAC built-in roles, Microsoft Entra ID roles and API permissions, resource types, resource provider operations and policy aliases in your Bicep, ARM, Terraform, PowerShell and YAML files become Ctrl+clickable links and hover cards that lead to the matching page on AzAdvertizer.net.

Hover cards on a role definition and a PowerShell script

What is recognised

  • /providers/Microsoft.Authorization/policyDefinitions/<id> and bare policy GUIDs; ALZ, AMBA and community policy names below a management group scope → Policy definition page
  • /providers/Microsoft.Authorization/policySetDefinitions/<id> and bare initiative GUIDs → Initiative page
  • /providers/Microsoft.Authorization/roleDefinitions/<id> and bare role GUIDs → RBAC built-in role page
  • Microsoft.KeyVault/vaults@2024-11-01, "type": "Microsoft.KeyVault/vaults", resource ids (.../providers/Microsoft.KeyVault/vaults/myvault) → Resource type page (the hover notes when the file's API version is older than the latest)
  • Microsoft.Compute/virtualMachines/write, Microsoft.KeyVault/vaults/secrets/getSecret/action → Resource provider operation (granting roles, policies)
  • Microsoft.Compute/virtualMachines/storageProfile.osDisk.managedDisk.id, Microsoft.Network/networkSecurityGroups/securityRules[*].access → Policy alias lookup
  • Entra ID role template ids (62e90394-69f5-4237-9190-012177145e10) → Entra ID role page
  • API permission ids (df021288-bdef-4463-88db-98f22de89214) and quoted names ("User.Read.All") → Entra ID API permission page
  • First-party application ids (00000003-0000-0000-c000-000000000000) → API permissions of that application

Bare GUIDs are only linked when the local index knows them, so random GUIDs stay untouched. Wildcards (Microsoft.Compute/*) are not linked.

Operation hover in a role definition

API permission hover in a PowerShell script

Languages by default: Bicep, Bicep parameters, JSON, JSONC, ARM template, Terraform, PowerShell, YAML, Azure Pipelines. Change the list with azadvertizer.languages.

Commands

  • AzAdvertizer: Open identifier at cursor in AzAdvertizer (also in the editor context menu)
  • AzAdvertizer: Refresh the lookup index now
  • AzAdvertizer: Show lookup index info

How it works, privacy

The extension ships with a lookup index (data/index.json: names, categories, effects, versions, API versions, built from the same files the AzAdvertizer.net pages load in the browser) and resolves everything locally. Links need no network at all.

Once a day it checks AzAdvertizer.net for a newer index and keeps a local copy. Turn this off with azadvertizer.index.autoRefresh. Nothing else is sent, and the extension has no telemetry. Links carry utm_source=vscode so the site can count visits from the extension; azadvertizer.utm switches that off.

Works in the desktop editor and in the web editor (vscode.dev, github.dev).

Settings

  • azadvertizer.site (default https://www.azadvertizer.net): Site the links point to and the index is refreshed from
  • azadvertizer.languages (default see above): Language ids with links and hovers
  • azadvertizer.links.enabled (default true): Document links (Ctrl+click)
  • azadvertizer.hover.enabled (default true): Hover cards
  • azadvertizer.features (default all true): Per kind: policy, initiative, role, entraRole, apiPermission, app, resourceType, operation, alias
  • azadvertizer.index.autoRefresh (default true): Background index refresh
  • azadvertizer.index.refreshHours (default 24): Hours between refresh checks
  • azadvertizer.maxFileSizeKB (default 2048): Larger files get no document links (hovers still work)
  • azadvertizer.utm (default true): utm_source=vscode on the links

Development

npm install
npm run index          # data/index.json from the files the site's pages load (node scripts/build-index.js [--site <url>] [--offline])
npm run build          # dist/extension.js (desktop) and dist/web/extension.js (web) via esbuild
npm test               # test/core-test.js (detection, resolution, hovers) and test/extension-test.js (activation against a fake VS Code API)
npm run package        # the .vsix (vsce)
npm run media          # README images from VS Code web (needs: npx @vscode/test-web --browser=none --quality stable --port 3011 --extensionDevelopmentPath . test/samples)

F5 in VS Code runs the extension (Run Extension / Run Web Extension) with the samples in test/samples.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft