Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .claude/skills/dataverse-sdk/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ The SDK supports Dataverse's native bulk operations: Pass lists to `create()`, `
from azure.identity import (
InteractiveBrowserCredential,
ClientSecretCredential,
ClientCertificateCredential,
CertificateCredential,
AzureCliCredential
)
from PowerPlatform.Dataverse.client import DataverseClient
Expand All @@ -45,7 +45,7 @@ credential = AzureCliCredential()

# Production options
credential = ClientSecretCredential(tenant_id, client_id, client_secret)
credential = ClientCertificateCredential(tenant_id, client_id, cert_path)
credential = CertificateCredential(tenant_id, client_id, cert_path)

# Create client (no trailing slash on URL!)
client = DataverseClient("https://yourorg.crm.dynamics.com", credential)
Expand Down Expand Up @@ -256,7 +256,7 @@ except ValidationError as e:
2. **Specify select fields** - Limit returned columns to reduce payload size
3. **Control page size** - Use `top` and `page_size` parameters appropriately
4. **Reuse client instances** - Don't create new clients for each operation
5. **Use production credentials** - ClientSecretCredential or ClientCertificateCredential for unattended operations
5. **Use production credentials** - ClientSecretCredential or CertificateCredential for unattended operations
6. **Error handling** - Implement retry logic for transient errors (`e.is_transient`)
7. **Always include customization prefix** for custom tables/columns
8. **Use lowercase** - Generally using lowercase input won't go wrong, except for custom table/column naming
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ The client requires any Azure Identity `TokenCredential` implementation for OAut
from azure.identity import (
InteractiveBrowserCredential,
ClientSecretCredential,
ClientCertificateCredential,
CertificateCredential,
AzureCliCredential
)
from PowerPlatform.Dataverse.client import DataverseClient
Expand All @@ -98,7 +98,7 @@ credential = InteractiveBrowserCredential() # Browser authentication

# Production options
# credential = ClientSecretCredential(tenant_id, client_id, client_secret)
# credential = ClientCertificateCredential(tenant_id, client_id, cert_path)
# credential = CertificateCredential(tenant_id, client_id, cert_path)

client = DataverseClient("https://yourorg.crm.dynamics.com", credential)
```
Expand Down Expand Up @@ -341,7 +341,7 @@ For optimal performance in production environments:
| **Select Fields** | Specify `select` parameter to limit returned columns and reduce payload size |
| **Page Size Control** | Use `top` and `page_size` parameters to control memory usage |
| **Connection Reuse** | Reuse `DataverseClient` instances across operations |
| **Production Credentials** | Use `ClientSecretCredential` or `ClientCertificateCredential` for unattended operations |
| **Production Credentials** | Use `ClientSecretCredential` or `CertificateCredential` for unattended operations |
| **Error Handling** | Implement retry logic for transient errors (`e.is_transient`) |

### Limitations
Expand Down
6 changes: 3 additions & 3 deletions src/PowerPlatform/Dataverse/claude_skill/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ The SDK supports Dataverse's native bulk operations: Pass lists to `create()`, `
from azure.identity import (
InteractiveBrowserCredential,
ClientSecretCredential,
ClientCertificateCredential,
CertificateCredential,
AzureCliCredential
)
from PowerPlatform.Dataverse.client import DataverseClient
Expand All @@ -45,7 +45,7 @@ credential = AzureCliCredential()

# Production options
credential = ClientSecretCredential(tenant_id, client_id, client_secret)
credential = ClientCertificateCredential(tenant_id, client_id, cert_path)
credential = CertificateCredential(tenant_id, client_id, cert_path)

# Create client (no trailing slash on URL!)
client = DataverseClient("https://yourorg.crm.dynamics.com", credential)
Expand Down Expand Up @@ -256,7 +256,7 @@ except ValidationError as e:
2. **Specify select fields** - Limit returned columns to reduce payload size
3. **Control page size** - Use `top` and `page_size` parameters appropriately
4. **Reuse client instances** - Don't create new clients for each operation
5. **Use production credentials** - ClientSecretCredential or ClientCertificateCredential for unattended operations
5. **Use production credentials** - ClientSecretCredential or CertificateCredential for unattended operations
6. **Error handling** - Implement retry logic for transient errors (`e.is_transient`)
7. **Always include customization prefix** for custom tables/columns
8. **Use lowercase** - Generally using lowercase input won't go wrong, except for custom table/column naming
Expand Down