Commit 6b8353b
Add relationship metadata API for creating table relationships (microsoft#88)
* Add relationship metadata API for creating table relationships
- Add metadata dataclasses (LocalizedLabel, Label, CascadeConfiguration,
AssociatedMenuConfiguration, LookupAttributeMetadata,
OneToManyRelationshipMetadata, ManyToManyRelationshipMetadata)
- Add _RelationshipOperationsMixin with create/get/delete operations
- Add create_lookup_field() convenience method to DataverseClient
- Add comprehensive unit tests for all new functionality
- Add relationships.py example demonstrating the API
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Address PR review feedback
- Move OData type constants to common/constants.py
- Add input/output examples to metadata to_dict() docstrings
- Remove .NET SDK references from _relationships.py docstrings
- Add __all__ to models/__init__.py
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Revert unrelated changes to minimize PR diff
- Revert emoji formatting changes in examples (file_upload, walkthrough,
functional_testing, installation_example)
- Revert pyproject.toml changes (keep claude skill installer)
- Update README with only relationship-related changes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Rename _ODataFileUpload to _FileUploadMixin for consistency
Aligns with _RelationshipOperationsMixin naming convention.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add cascade behavior constants to constants.py
Move cascade behavior string values ("Cascade", "NoCascade", "RemoveLink",
"Restrict") to constants.py per PR review feedback. Update CascadeConfiguration
to use these constants for its default values.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Remove AssociatedMenuConfiguration for minimal API surface
Remove the AssociatedMenuConfiguration class and related parameters from
relationship metadata types. This is a niche UI customization that most
users don't need, and can still be achieved via additional_properties.
Changes:
- Remove AssociatedMenuConfiguration class from metadata.py
- Remove associated_menu_configuration from OneToManyRelationshipMetadata
- Remove entity1/2_associated_menu_configuration from ManyToManyRelationshipMetadata
- Update example and tests accordingly
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Align relationship API with SDK redesign patterns
- Rename solution_unique_name parameter to solution (shorter, consistent)
- Add keyword-only separator (*) for optional parameters
- Update tests to use new parameter style
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add attribute docstrings to cascade constants and replace hardcoded strings
Use attribute docstrings (""" after assignment) for cascade behavior constants
so Pylance/Pyright surfaces descriptions in IDE hover tooltips. Replace all
hardcoded cascade string literals with named constants in client.py and the
relationships example.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Address review comments: fix cascade docstrings and document naming convention
- Use MS docs descriptions for cascade constants; keep NoCascade explicit
- Restrict and RemoveLink docstrings now reference delete specifically
- Document internal vs public _ prefix naming convention in README and
both SKILL file copies
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Clarify public API convention: methods in namespaces, types/constants in own modules
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: tpellissier <tpellissier@microsoft.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>1 parent 4996de3 commit 6b8353b
16 files changed
Lines changed: 2139 additions & 14 deletions
File tree
- .claude/skills/dataverse-sdk-dev
- examples/advanced
- src/PowerPlatform/Dataverse
- claude_skill/dataverse-sdk-dev
- common
- data
- models
- tests/unit
- data
- models
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
28 | 29 | | |
29 | 30 | | |
30 | 31 | | |
| |||
36 | 37 | | |
37 | 38 | | |
38 | 39 | | |
| 40 | + | |
39 | 41 | | |
40 | 42 | | |
41 | 43 | | |
| |||
255 | 257 | | |
256 | 258 | | |
257 | 259 | | |
258 | | - | |
| 260 | + | |
259 | 261 | | |
260 | 262 | | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
261 | 325 | | |
262 | 326 | | |
263 | 327 | | |
| |||
281 | 345 | | |
282 | 346 | | |
283 | 347 | | |
284 | | - | |
| 348 | + | |
| 349 | + | |
285 | 350 | | |
286 | 351 | | |
287 | 352 | | |
| |||
343 | 408 | | |
344 | 409 | | |
345 | 410 | | |
346 | | - | |
347 | | - | |
| 411 | + | |
348 | 412 | | |
349 | 413 | | |
350 | 414 | | |
| |||
365 | 429 | | |
366 | 430 | | |
367 | 431 | | |
368 | | - | |
| 432 | + | |
369 | 433 | | |
370 | 434 | | |
371 | 435 | | |
| 436 | + | |
372 | 437 | | |
373 | 438 | | |
374 | 439 | | |
| |||
0 commit comments