You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
echo "::warning file=.azdo/ci-pr.yaml::This PR changes .azdo/ci-pr.yaml. After merge, Azure DevOps may disable/require approval for the PR pipeline YAML until it is re-enabled/approved."
Copy file name to clipboardExpand all lines: CHANGELOG.md
+53Lines changed: 53 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,57 @@ All notable changes to this project will be documented in this file.
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
+
## [0.1.0b5] - 2026-02-27
9
+
10
+
### Fixed
11
+
- UpsertMultiple: exclude alternate key fields from request body (#127). The create path of UpsertMultiple failed with `400 Bad Request` when alternate key column values appeared in both the body and `@odata.id`.
- All flat methods on `DataverseClient` (`create`, `update`, `delete`, `get`, `query_sql`, `upload_file`, etc.) now emit `DeprecationWarning` and delegate to the corresponding namespaced operations
25
+
26
+
## [0.1.0b3] - 2025-12-19
27
+
28
+
### Added
29
+
- Client-side correlation ID and client request ID for request tracing (#70)
30
+
- Unit tests for `DataverseClient` (#71)
31
+
32
+
### Changed
33
+
- Standardized package versioning (#84)
34
+
- Updated package link (#69)
35
+
36
+
### Fixed
37
+
- Retry logic for examples (#72)
38
+
- Removed double space formatting issue (#82)
39
+
- Updated CI trigger to include main branch (#81)
40
+
41
+
## [0.1.0b2] - 2025-11-17
42
+
43
+
### Added
44
+
- Enforce Black formatting across the codebase (#61, #62)
45
+
- Python 3.14 support added to `pyproject.toml` (#55)
46
+
47
+
### Changed
48
+
- Removed `pandas` dependency (#57)
49
+
- Refactored SDK architecture and quality improvements (#55)
50
+
- Prefixed table names with schema name for consistency (#51)
51
+
- Updated docstrings across core modules (#54, #63)
52
+
53
+
### Fixed
54
+
- Fixed `get` for single-select option set columns (#52)
55
+
- Fixed example filename references and documentation URLs (#60)
56
+
- Fixed API documentation link in examples (#64)
57
+
- Fixed CI pipeline to use modern `pyproject.toml` dev dependencies (#56, #59)
58
+
8
59
## [0.1.0b1] - 2025-11-14
9
60
10
61
### Added
@@ -19,6 +70,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
19
70
- Comprehensive error handling with specific exception types (`DataverseError`, `AuthenticationError`, etc.) (#22, #24)
20
71
- HTTP retry logic with exponential backoff for resilient operations (#72)
Copy file name to clipboardExpand all lines: README.md
+12-11Lines changed: 12 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -114,6 +114,7 @@ The SDK provides a simple, pythonic interface for Dataverse operations:
114
114
| Concept | Description |
115
115
|---------|-------------|
116
116
|**DataverseClient**| Main entry point; provides `records`, `query`, `tables`, and `files` namespaces |
117
+
|**Context Manager**| Use `with DataverseClient(...) as client:` for automatic cleanup and HTTP connection pooling |
117
118
|**Namespaces**| Operations are organized into `client.records` (CRUD), `client.query` (QueryBuilder & SQL), `client.tables` (metadata), and `client.files` (file uploads) |
118
119
|**Records**| Dataverse records represented as Python dictionaries with column schema names |
119
120
|**Schema names**| Use table schema names (`"account"`, `"new_MyTestTable"`) and column schema names (`"name"`, `"new_MyTestColumn"`). See: [Table definitions in Microsoft Dataverse](https://learn.microsoft.com/en-us/power-apps/developer/data-platform/entity-metadata)|
@@ -132,17 +133,18 @@ from PowerPlatform.Dataverse.client import DataverseClient
Create relationships between tables using the relationship API. For a complete working example, see [examples/advanced/relationships.py](https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/main/examples/advanced/relationships.py).
360
362
361
363
```python
362
-
from PowerPlatform.Dataverse.models.metadataimport (
364
+
from PowerPlatform.Dataverse.models.relationshipimport (
363
365
LookupAttributeMetadata,
364
366
OneToManyRelationshipMetadata,
365
367
ManyToManyRelationshipMetadata,
366
-
Label,
367
-
LocalizedLabel,
368
368
)
369
+
from PowerPlatform.Dataverse.models.labels import Label, LocalizedLabel
369
370
370
371
# Create a one-to-many relationship: Department (1) -> Employee (N)
371
372
# This adds a "Department" lookup field to the Employee table
0 commit comments