Have these ready. Full detail on each is in the Azure services, data & security overview.
| You need | Used for | |
|---|---|---|
Azure CLI installed and run once, signed in (az login) | Every script below uses it. | required |
| Owner or User Access Administrator on the target subscription | Needed to grant the app's identity its three read-only roles during deploy. | required |
| Application Administrator (or Global Admin) in Entra ID | To register the sign-in app and set its redirect URI. | required |
| Privileged Role Administrator in Entra ID | One-time: grant the managed identity its Graph read-access (Step 4). | required |
| Your AI Pulse Gateway URL + key and SYLVA subscription key | Issued by SYLVA when you subscribe on Marketplace. | required |
| An existing Azure OpenAI resource endpoint | AI Pulse reads its configuration only — it does not call the model. | required |
| Microsoft 365 E5 / Copilot admin access | Only if you want Copilot-usage and Purview signals. | optional |
Connect-AIPulseTenant.ps1, Set-AIPulseRedirectUri.ps1, Grant-AIPulseGraphAccess.ps1, and the optional run-all-m365-setup.ps1. Bash equivalents exist for the first two on Linux/macOS.Run locally · needs Application Administrator
Create the Entra sign-in appRun the connector script once. It creates a single-tenant app registration for sign-in, adds the Admin / Reviewer / Viewer roles AI Pulse uses internally, and records who the first administrator will be.
This writes aipulse-onboarding.parameters.json next to the script, containing the Entra client ID, client secret, tenant ID, and the first-admin object ID. Keep this file private and delete it once you've used it — it holds a live secret.
Azure Portal · needs Owner or User Access Administrator
Launch AI Pulse and complete the wizardFrom Azure Marketplace, deploy AI Pulse into your subscription. The wizard has three steps beyond naming the resource group:
| Step | What you'll enter |
|---|---|
| Database | A Postgres admin password (16+ characters, mixed case, digits, symbols). |
| Identity & SSO | The Entra tenant ID, client ID, client secret, and admin object ID from Step 1's output file. |
| AI & Telemetry | Your AI Pulse Gateway URL + key, your Azure OpenAI endpoint, and your SYLVA subscription key. |
The wizard shows an upfront warning that the account running the deploy needs Owner or User Access Administrator — this is expected: the template grants its own managed identity three narrow read-only roles (Reader, Cost Management Reader, Key Vault Secrets User), never anything broader, and only a privileged account can create those role assignments. Deployment takes roughly 5–10 minutes.
When it finishes, open the deployment's Outputs — you'll need portalFqdn and miPrincipalId for the next two steps.
Run locally · needs Application Administrator
Point sign-in at the new deploymentThe portal's web address only exists after deployment, so this has to be a separate step. Run:
This registers https://<portalFqdn>/auth/callback on the sign-in app and restarts the portal with the address set — no image rebuild, just a fresh revision (about 30 seconds).
Run locally · needs Privileged Role Administrator
Let the portal read its Microsoft signalsThe portal reads Microsoft Graph using its own managed identity — a separate identity from the sign-in app in Step 1, created fresh during deployment. Grant it the seven read-only permissions it needs (license detection, name resolution, audit trail, shadow-AI discovery):
It's safe to run more than once — anything already granted is skipped. If you'd rather grant a subset now and the rest later, pass -Roles with just the ones you want (see the script's help text for the full list). Anything not yet granted shows an honest "permission pending" state in the portal rather than a blank or broken widget.
Browser · the first administrator
Sign in and complete the setup wizardOpen https://<portalFqdn> and sign in with the Entra account whose object ID you provided in Step 1. That first sign-in automatically claims the admin role — a one-time, single-use bootstrap. Anyone added as an administrator afterwards is managed inside the product, not through this file.
The in-product setup wizard then walks through a live check of each optional security service (Defender, Sentinel, Content Safety) so you know exactly what's connected before you start using the dashboards.
Only needed if you want Microsoft 365 Copilot usage and Purview governance signals. Requires Microsoft 365 E5 or Copilot add-ons.
This opens one browser sign-in for Security & Compliance and one device-code prompt for Exchange Online, then creates three AI-governance sensitivity labels, two DLP policies, and confirms the unified audit log is on. Takes about five minutes. Without this step, the Copilot and Purview widgets show "licence required" rather than an error.
| Symptom | Cause & fix |
|---|---|
AADSTS50011 — redirect URI mismatch | Step 3 wasn't run, or the FQDN doesn't match exactly. Confirm the URI is exactly https://<portalFqdn>/auth/callback. |
AADSTS700016 — app not found in tenant | You're signed into the wrong Entra tenant. Run az login --tenant <yourTenantId> and retry. |
| License / audit / Copilot / shadow-AI widgets stay empty | Step 4 wasn't run, or the operator lacked Privileged Role Administrator. Re-run Grant-AIPulseGraphAccess.ps1 — it's safe to repeat. |
| Deployment fails granting subscription-scope roles | The deploying account isn't Owner or User Access Administrator on the subscription. Have someone with that role run the deployment, or grant it temporarily. |
| Security-posture widgets (Defender, Sentinel) stay dark | Expected if those services aren't enabled in your subscription — they're optional. See the prerequisites in the security overview. |
portalFqdn and miPrincipalId recorded.SYLVA Labs Pte Ltd · AI Pulse — Installation & Onboarding Guide. Pre-release draft.
Companion to Azure services, data & security. Script names and parameters reflect the current shipping install package.