add-data-source
Guide the user to add a data source, connection, or API connector to a Canvas App via Power Apps Studio, then verify and…
Configure optional customer-owned Application Insights telemetry for a Power Apps mobile app — enable it against an existing Azure resource, change the resource, or disable it. Standalone, and invoked by /edit-app.
Claude Code
$ npx -y skills add microsoft/power-platform-skills --skill setup-app-insights --agent claude-code
Codex
$ npx skills add microsoft/power-platform-skills --skill setup-app-insights -a codex -y
Cursor
$ npx skills add microsoft/power-platform-skills --skill setup-app-insights -a cursor -y
Gemini CLI
$ npx skills add microsoft/power-platform-skills --skill setup-app-insights -a gemini-cli -y
GitHub Copilot
$ npx skills add microsoft/power-platform-skills --skill setup-app-insights -a github-copilot -y
OpenCode
$ npx skills add microsoft/power-platform-skills --skill setup-app-insights -a opencode -y
Windsurf
$ npx skills add microsoft/power-platform-skills --skill setup-app-insights -a windsurf -y
name: setup-app-insights description: Configure optional customer-owned Application Insights telemetry for a Power Apps mobile app — enable it against an existing Azure resource, change the resource, or disable it. Standalone, and invoked by /edit-app. user-invocable: true allowed-tools: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion, Skill model: opus
> **Plugin check**: Run `node "${PLUGIN_ROOT}/scripts/check-version.js"` - if it outputs a message, show it to the user before proceeding.
**Shared instructions: [shared-instructions.md](../../shared/shared-instructions.md)** — read first.
Configures the generated app's optional, customer-owned Application Insights telemetry through `app.json` → `expo.extra.appInsightsConfig`. This is host/runtime configuration, not a connector or plan section — it never touches the data model, native-capability matrix, connector list, or screens.
Application Insights is **off by default**. Invoking this skill (or approving its mutation) is the explicit opt-in; consent is never inferred from an app description.
**Telemetry checkpoint: `resolve_app_insights_mode`**
1. Check MOBILE_APP_ORCHESTRATING=1 AND explicit edit-app caller context → Mode A (invoked by /edit-app). Use the passed --working-dir. Return a status block. 2. Else resolve working_dir from cwd (must contain app.json with an expo object) → Mode B (standalone). Return a human summary.
Use the invocation-scoped context from [app-edit-routing.md](../../shared/references/app-edit-routing.md), not a stale shell value. Configuration approval remains owned by Step 3 in either mode.
**Telemetry checkpoint: `determine_app_insights_action`**
Read, when present:
If `app.json` is missing, malformed, or has no `expo` object, STOP without mutation (`BLOCKED` in Mode A). If uncommitted work overlaps `app.json` or `app/_layout.tsx`, follow the changed-file overlap approval rule in `shared-instructions.md`.
Determine the action:
**Telemetry checkpoint: `review_app_insights_change`**
Show one focused preview and continue only after approval:
─── Application Insights ──────────────────────────── Action <enable | change resource | disable> Current enabled: <true|false> Configuration app.json → expo.extra.appInsightsConfig Provider app/_layout.tsx → PowerAppsProvider appConfig Sensitive connection string is never printed or stored in memory-bank.md
Ask: `Apply this Application Insights change?`
After the action is confirmed, record the choice through Mobile Apps usage telemetry (`enabled` for enable/change-resource, `disabled` for disable):
node "${PLUGIN_ROOT}/hooks/run-telemetry.js" \
app-insights-selection \
"<enabled-or-disabled>" \
"<prompt-or-pretool>" \
'<working_dir>'Pass the invocation source so the event's `invocationSource` matches how the skill was reached: `pretool` in Mode A (delegated from another skill such as `/edit-app` via the Skill tool) and `prompt` in Mode B (the user ran `/setup-app-insights` directly).
This event follows the existing Mobile Apps telemetry controls and contains no Application Insights resource details or connection string. It fails open and never blocks the skill.
**Telemetry checkpoint: `configure_app_insights_resource`**
Discover Application Insights resources visible to the current Azure CLI identity:
az resource list \
--resource-type Microsoft.Insights/components \
--query "[].{name:name,id:id,resourceGroup:resourceGroup,location:location}" \
-o jsonBranch on the result:
WORKSPACE_RESOURCE_ID=$(
az resource show \
--ids "<selected-resource-id>" \
--api-version 2020-02-02 \
--query properties.WorkspaceResourceId \
-o tsv
)If `WORKSPACE_RESOURCE_ID` is empty, th
Plugins from Microsoft that teach AI assistants, such as GitHub Copilot and Claude Code, to build on Power Platform.
Guide the user to add a data source, connection, or API connector to a Canvas App via Power Apps Studio, then verify and…
Creates or edits a Power Apps Canvas App through the Canvas Authoring MCP coauthoring session. Handles staged experience design,…
Configure the Canvas Authoring MCP server for the current coauthoring session. Use before starting to edit a canvas app with the…
Use this skill when the user wants to "report a bug", "file an issue", "report an issue", "submit a bug report", or report any…
Adds Azure DevOps connector to a Power Apps code app. Use when querying work items, creating bugs, managing pipelines, or making…
Adds any Power Platform connector to a Power Apps code app. Generic fallback for connectors not covered by a specific skill.
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.