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 continue. USE WHEN the user asks to…
Use when the user wants to wire a Power Apps Wrap mobile app to an Entra ID app registration by opening the Power Apps Wrap app-registration page, pasting the resulting client ID, and updating auth.config.json.
$ npx -y skills add microsoft/power-platform-skills --skill set-app-registration-native --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/set-app-registration-nativeContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when the user wants to wire a Power Apps Wrap mobile app to an Entra ID app registration by opening the Power Apps Wrap app-registration page, pasting the resulting client ID, and updating auth.config.json.
name: set-app-registration-native description: Use when the user wants to wire a Power Apps Wrap mobile app to an Entra ID app registration by opening the Power Apps Wrap app-registration page, pasting the resulting client ID, and updating auth.config.json. user-invocable: true allowed-tools: Read, Edit, Write, Grep, Glob, Bash, AskUserQuestion model: sonnet
**Shared instructions: [shared-instructions.md](${PLUGIN_ROOT}/shared/shared-instructions.md)** — read first.
Wire `auth.config.json` to an Entra ID app registration for a Power Apps Wrap mobile app.
This skill is manual by design:
registration, then write the pasted client ID into `auth.config.json`.
Tenant-wide admin consent is not required for this Wrap registration flow.
1. Verify app root -> 2. Resolve environment + tenant -> 3. Open Wrap registration URL -> 4. Capture client ID -> 5. Write `auth.config.json` -> 6. Validate JSON -> 7. Summary
---
From the current directory, verify a generated mobile app root:
test -f auth.config.json && test -f app.config.js && test -f power.config.json
If this fails, stop and tell the user to run `/create-mobile-app` first or open the generated app folder.
**Telemetry checkpoint: `resolve_registration_environment`**
Use the same environment selected by the generated app. Prefer `.resolved-environment.json`, then `auth.config.json.environment`, then `power.config.json` + resolver:
ENV_ID=$(node -e "console.log(require('./power.config.json').environmentId || '')")
TENANT_ID=$(node -e "try { const j=require('./.resolved-environment.json'); console.log(j.tenantId || '') } catch { console.log('') }" 2>/dev/null)
if [ -z "$TENANT_ID" ]; then
TENANT_ID=$(node -e "try { const j=require('./auth.config.json'); console.log((j.environment && j.environment.tenantId) || '') } catch { console.log('') }" 2>/dev/null)
fi
if [ -z "$TENANT_ID" ] && [ -n "$ENV_ID" ]; then
node "${PLUGIN_ROOT}/scripts/resolve-environment.js" "$ENV_ID" > .resolved-environment.json
TENANT_ID=$(node -e "const j=require('./.resolved-environment.json'); console.log(j.tenantId || '')")
fi
echo "$ENV_ID"
echo "$TENANT_ID"If `ENV_ID` is empty, stop: `power.config.json` is not initialized.
If `TENANT_ID` is empty, stop: environment resolution failed. Do not guess the tenant and do not use a stale `msal.tenantId` as the authority source.
**Telemetry checkpoint: `open_wrap_app_registration`**
Print the public Power Apps Wrap URL for the active environment:
https://make.powerapps.com/environments/<environment-id>/wraps#create-app-registration
Tell the user:
Open the Power Apps Wrap app-registration page for this environment: https://make.powerapps.com/environments/<environment-id>/wraps#create-app-registration Create/register the app there, then paste the Application (client) ID here. The Wrap page configures the native registration. Do not add redirect URIs or API permissions manually; tenant-wide admin consent is not required. If you already have a client ID, paste it directly. If you cannot configure auth now, type skip.
Ask:
Paste the Entra ID app registration client ID for tenant <tenant-guid> (GUID format), or type skip:
**Telemetry checkpoint: `write_native_auth_configuration`**
Update `auth.config.json`:
Use structured JSON editing. Do not store tokens, secrets, or current-user Dataverse identity fields.
Example target shape:
{
"msal": {
"clientId": "<client-id>",
"tenantId": "<tenant-guid>"
},
"environment": {
"environmentId": "<environment-id>",
"environmentUrl": "https://org.crm.dynamics.com",
"tenantId": "<tenant-guid>",
"cachedAt": "<iso timestamp>"
}
}Do not touch `src/playerConfig.ts`; auth identifiers live in `auth.config.json` only.
**Telemetry checkpoint: `validate_native_auth_configuration`**
node -e "JSON.parse(require('fs').readFileSync('auth.config.json','utf8')); console.log('auth.config.json OK')"If dependencies are installed, optionally run:
npx tsc --noEmit
Do not run npm install or native builds from this skill.
If a client ID was written:
App registration wired. Client ID : <client-id> Tenant : <tenant-guid> Config : auth.config.json
If skipped:
Auth client ID was not configured. Tenant was preserved in auth.config.json: <tenant-guid> The app will fail to sign in until a client ID is added. Run /set-app-registration-native later, or paste a client ID into auth.config.json.
Official agent skills/plugins for Power Platform development by Microsoft.
Repo: microsoft/power-platform-skills
Guide the user to add a data source, connection, or API connector to a Canvas App via Power Apps Studio, then verify and continue. USE WHEN the user asks to…
Creates or edits a Power Apps Canvas App through the Canvas Authoring MCP coauthoring session. Handles new app generation, direct targeted edits, complex…
Configure the Canvas Authoring MCP server for the current coauthoring session. USE WHEN "configure MCP", "set up MCP server", "MCP not working", "connect…
Use this skill when the user wants to "report a bug", "file an issue", "report an issue", "submit a bug report", or report any problem with the canvas-apps…
Adds Azure DevOps connector to a Power Apps code app. Use when querying work items, creating bugs, managing pipelines, or making ADO API calls.
Adds any Power Platform connector to a Power Apps code app. Generic fallback for connectors not covered by a specific skill.