plugins/dataverse/skills/dataverse-sdk/SKILL.md
# dataverse-sdk This skill provides guidance on using the PowerPlatform Dataverse Client SDK for Python. Use when users ask about "Dataverse SDK", "Dataverse Python", "DataverseClient", "Dataverse authentication", "Dataverse CRUD operations", "create Dataverse records", "query Dataverse", "Dataverse connection", or need help with the Microsoft Dataverse Python SDK. ## Quick Start Install the SDK: ```bash pip install PowerPlatform-Dataverse-Client azure-identity ``` Basic setup: ```python fro
npx skillsauth add sahib-sawhney-wh/sahibs-claude-plugin-marketplace plugins/dataverse/skills/dataverse-sdkInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides guidance on using the PowerPlatform Dataverse Client SDK for Python. Use when users ask about "Dataverse SDK", "Dataverse Python", "DataverseClient", "Dataverse authentication", "Dataverse CRUD operations", "create Dataverse records", "query Dataverse", "Dataverse connection", or need help with the Microsoft Dataverse Python SDK.
Install the SDK:
pip install PowerPlatform-Dataverse-Client azure-identity
Basic setup:
from azure.identity import InteractiveBrowserCredential
from PowerPlatform.Dataverse.client import DataverseClient
credential = InteractiveBrowserCredential()
client = DataverseClient("https://yourorg.crm.dynamics.com", credential)
from azure.identity import InteractiveBrowserCredential
credential = InteractiveBrowserCredential()
Opens a browser window for user to sign in. Best for development and testing.
from azure.identity import DeviceCodeCredential
credential = DeviceCodeCredential()
Displays a code to enter on a separate device. Use for servers without browsers.
from azure.identity import ClientSecretCredential
credential = ClientSecretCredential(
tenant_id="your-tenant-id",
client_id="your-app-id",
client_secret="your-secret"
)
Service principal authentication for automated processes. Requires Azure app registration.
# Single record
account_ids = client.create("account", {"name": "Contoso Ltd"})
account_id = account_ids[0]
# Multiple records (bulk)
payloads = [
{"name": "Company A"},
{"name": "Company B"},
]
ids = client.create("account", payloads)
# Single record by ID
account = client.get("account", account_id)
# Query with filters
pages = client.get(
"account",
select=["name", "telephone1"],
filter="statecode eq 0",
top=100
)
for page in pages:
for record in page:
print(record["name"])
# Single update
client.update("account", account_id, {"telephone1": "555-0199"})
# Bulk update
client.update("account", ids, {"industry": "Technology"})
# Single delete
client.delete("account", account_id)
# Bulk delete
client.delete("account", ids, use_bulk_delete=True)
from PowerPlatform.Dataverse.core.errors import HttpError, ValidationError
try:
client.get("account", "invalid-id")
except HttpError as e:
print(f"HTTP {e.status_code}: {e.message}")
if e.is_transient:
print("Retry may succeed")
except ValidationError as e:
print(f"Validation error: {e.message}")
"account", "new_MyTable")"new_", "cr123_")references/auth-patterns.md for detailed authentication examplesreferences/crud-examples.md for comprehensive CRUD patternsreferences/error-handling.md for error handling best practicestools
# dataverse-web-apps This skill provides guidance on building web applications (any language) that connect to Microsoft Dataverse. Use when users ask about ".NET Dataverse", "Node.js Dataverse", "JavaScript Dataverse", "REST API Dataverse", "web app Dataverse", "OAuth Dataverse", or need help with web application integration. ## Dataverse Web API All languages can access Dataverse via the OData Web API. **Base URL:** `https://yourorg.api.crm.dynamics.com/api/data/v9.2/` ### Authentication
tools
# dataverse-schema-design This skill provides guidance on designing Dataverse table schemas and data models. Use when users ask about "Dataverse table design", "Dataverse schema", "Dataverse relationships", "Dataverse columns", "data modeling Dataverse", "Dataverse best practices", or need help designing their data structure. ## Table Design Fundamentals ### Naming Conventions - **Table prefix**: Use publisher prefix (e.g., `new_`, `cr123_`) - **Table names**: PascalCase, singular (e.g., `new
tools
# dataverse-queries This skill provides guidance on querying data from Microsoft Dataverse. Use when users ask about "Dataverse query", "OData filter", "Dataverse SQL", "FetchXML", "query Dataverse records", "Dataverse filter syntax", "search Dataverse", or need help constructing queries. ## Query Methods The Dataverse SDK supports two query methods: 1. **OData queries** - Standard Web API query syntax 2. **SQL queries** - T-SQL-like syntax (read-only) ## OData Query Basics ```python # Basi
tools
# dataverse-python-apps This skill provides guidance on building Python applications that use Microsoft Dataverse as a database. Use when users ask about "Python Dataverse app", "Flask Dataverse", "FastAPI Dataverse", "Dataverse backend", "Python API with Dataverse", "Dataverse data pipeline", or need help building Python applications with Dataverse. ## Architecture Patterns ### Basic Application Structure ``` my-dataverse-app/ ├── app/ │ ├── __init__.py │ ├── dataverse_client.py # Dat