pvw-cli 1.2.4__py3-none-any.whl → 1.2.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pvw-cli might be problematic. Click here for more details.
- purviewcli/__init__.py +1 -1
- purviewcli/cli/types.py +333 -0
- purviewcli/cli/unified_catalog.py +1329 -9
- purviewcli/client/_entity.py +74 -17
- purviewcli/client/_types.py +31 -0
- purviewcli/client/_unified_catalog.py +646 -30
- purviewcli/client/endpoints.py +75 -0
- {pvw_cli-1.2.4.dist-info → pvw_cli-1.2.5.dist-info}/METADATA +19 -9
- {pvw_cli-1.2.4.dist-info → pvw_cli-1.2.5.dist-info}/RECORD +12 -12
- {pvw_cli-1.2.4.dist-info → pvw_cli-1.2.5.dist-info}/WHEEL +0 -0
- {pvw_cli-1.2.4.dist-info → pvw_cli-1.2.5.dist-info}/entry_points.txt +0 -0
- {pvw_cli-1.2.4.dist-info → pvw_cli-1.2.5.dist-info}/top_level.txt +0 -0
purviewcli/client/endpoints.py
CHANGED
|
@@ -371,6 +371,80 @@ ENDPOINTS = {
|
|
|
371
371
|
# Share analytics
|
|
372
372
|
"get_share_analytics": "/sentShares/{sentShareId}/analytics",
|
|
373
373
|
},
|
|
374
|
+
# ==================== UNIFIED CATALOG API ENDPOINTS ====================
|
|
375
|
+
# Current: Using /datagovernance/catalog/* endpoints (Working as of Oct 2025)
|
|
376
|
+
# Future: Microsoft announced new Unified Catalog API (2024-03-01-preview)
|
|
377
|
+
# https://learn.microsoft.com/en-us/rest/api/purview/unified-catalog-api-overview
|
|
378
|
+
# TODO: Monitor and migrate to new UC API when documentation is complete
|
|
379
|
+
# New API will cover: OKRs, Domains, CDEs, Data Products, Terms, Policies
|
|
380
|
+
# Roadmap: Data Assets and Critical Data Columns support
|
|
381
|
+
"unified_catalog": {
|
|
382
|
+
# Business domains
|
|
383
|
+
"list_domains": "/datagovernance/catalog/businessdomains",
|
|
384
|
+
"create_domain": "/datagovernance/catalog/businessdomains",
|
|
385
|
+
"get_domain": "/datagovernance/catalog/businessdomains/{domainId}",
|
|
386
|
+
"update_domain": "/datagovernance/catalog/businessdomains/{domainId}",
|
|
387
|
+
"delete_domain": "/datagovernance/catalog/businessdomains/{domainId}",
|
|
388
|
+
# Data products
|
|
389
|
+
"list_data_products": "/datagovernance/catalog/dataproducts",
|
|
390
|
+
"create_data_product": "/datagovernance/catalog/dataproducts",
|
|
391
|
+
"get_data_product": "/datagovernance/catalog/dataproducts/{productId}",
|
|
392
|
+
"update_data_product": "/datagovernance/catalog/dataproducts/{productId}",
|
|
393
|
+
"delete_data_product": "/datagovernance/catalog/dataproducts/{productId}",
|
|
394
|
+
# Data product relationships
|
|
395
|
+
"create_data_product_relationship": "/datagovernance/catalog/dataproducts/{productId}/relationships",
|
|
396
|
+
"list_data_product_relationships": "/datagovernance/catalog/dataproducts/{productId}/relationships",
|
|
397
|
+
"delete_data_product_relationship": "/datagovernance/catalog/dataproducts/{productId}/relationships",
|
|
398
|
+
# Data product query
|
|
399
|
+
"query_data_products": "/datagovernance/catalog/dataproducts/query",
|
|
400
|
+
# Terms (UC specific)
|
|
401
|
+
"list_terms": "/datagovernance/catalog/terms",
|
|
402
|
+
"create_term": "/datagovernance/catalog/terms",
|
|
403
|
+
"get_term": "/datagovernance/catalog/terms/{termId}",
|
|
404
|
+
"update_term": "/datagovernance/catalog/terms/{termId}",
|
|
405
|
+
"delete_term": "/datagovernance/catalog/terms/{termId}",
|
|
406
|
+
# Terms query
|
|
407
|
+
"query_terms": "/datagovernance/catalog/terms/query",
|
|
408
|
+
# Objectives
|
|
409
|
+
"list_objectives": "/datagovernance/catalog/objectives",
|
|
410
|
+
"create_objective": "/datagovernance/catalog/objectives",
|
|
411
|
+
"get_objective": "/datagovernance/catalog/objectives/{objectiveId}",
|
|
412
|
+
"update_objective": "/datagovernance/catalog/objectives/{objectiveId}",
|
|
413
|
+
"delete_objective": "/datagovernance/catalog/objectives/{objectiveId}",
|
|
414
|
+
# Objectives query
|
|
415
|
+
"query_objectives": "/datagovernance/catalog/objectives/query",
|
|
416
|
+
# Critical Data Elements
|
|
417
|
+
"list_critical_data_elements": "/datagovernance/catalog/criticalDataElements",
|
|
418
|
+
"create_critical_data_element": "/datagovernance/catalog/criticalDataElements",
|
|
419
|
+
"get_critical_data_element": "/datagovernance/catalog/criticalDataElements/{cdeId}",
|
|
420
|
+
"update_critical_data_element": "/datagovernance/catalog/criticalDataElements/{cdeId}",
|
|
421
|
+
"delete_critical_data_element": "/datagovernance/catalog/criticalDataElements/{cdeId}",
|
|
422
|
+
# CDE relationships
|
|
423
|
+
"create_cde_relationship": "/datagovernance/catalog/criticalDataElements/{cdeId}/relationships",
|
|
424
|
+
"list_cde_relationships": "/datagovernance/catalog/criticalDataElements/{cdeId}/relationships",
|
|
425
|
+
"delete_cde_relationship": "/datagovernance/catalog/criticalDataElements/{cdeId}/relationships",
|
|
426
|
+
# CDE query
|
|
427
|
+
"query_critical_data_elements": "/datagovernance/catalog/criticalDataElements/query",
|
|
428
|
+
# Policies
|
|
429
|
+
"list_policies": "/datagovernance/catalog/policies",
|
|
430
|
+
"create_policy": "/datagovernance/catalog/policies",
|
|
431
|
+
"get_policy": "/datagovernance/catalog/policies/{policyId}",
|
|
432
|
+
"update_policy": "/datagovernance/catalog/policies/{policyId}",
|
|
433
|
+
"delete_policy": "/datagovernance/catalog/policies/{policyId}",
|
|
434
|
+
# Custom Metadata (Business Metadata via Atlas API)
|
|
435
|
+
# Note: Both /catalog/api and /datamap/api work, but /datamap/api is for new portal
|
|
436
|
+
"list_custom_metadata": "/datamap/api/atlas/v2/types/typedefs",
|
|
437
|
+
"get_custom_metadata": "/datamap/api/atlas/v2/entity/guid/{guid}",
|
|
438
|
+
"add_custom_metadata": "/datamap/api/atlas/v2/entity/guid/{guid}/businessmetadata",
|
|
439
|
+
"update_custom_metadata": "/datamap/api/atlas/v2/entity/guid/{guid}/businessmetadata",
|
|
440
|
+
"delete_custom_metadata": "/datamap/api/atlas/v2/entity/guid/{guid}/businessmetadata",
|
|
441
|
+
# Custom Attributes
|
|
442
|
+
"list_custom_attributes": "/datagovernance/catalog/attributes",
|
|
443
|
+
"create_custom_attribute": "/datagovernance/catalog/attributes",
|
|
444
|
+
"get_custom_attribute": "/datagovernance/catalog/attributes/{attributeId}",
|
|
445
|
+
"update_custom_attribute": "/datagovernance/catalog/attributes/{attributeId}",
|
|
446
|
+
"delete_custom_attribute": "/datagovernance/catalog/attributes/{attributeId}",
|
|
447
|
+
},
|
|
374
448
|
# ==================== AZURE RESOURCE MANAGER ENDPOINTS ====================
|
|
375
449
|
"management": {
|
|
376
450
|
# Azure Resource Manager endpoints for Purview accounts
|
|
@@ -467,6 +541,7 @@ def get_endpoint_category(endpoint_name: str) -> str:
|
|
|
467
541
|
"self_service_policies": "self_service_policies",
|
|
468
542
|
"sharing": "sharing",
|
|
469
543
|
"metadata_policies": "metadata_policies",
|
|
544
|
+
"unified_catalog": "datamap",
|
|
470
545
|
"management": "management",
|
|
471
546
|
}
|
|
472
547
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pvw-cli
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.5
|
|
4
4
|
Summary: Microsoft Purview CLI with comprehensive automation capabilities
|
|
5
5
|
Author-email: AYOUB KEBAILI <keayoub@msn.com>
|
|
6
6
|
Maintainer-email: AYOUB KEBAILI <keayoub@msn.com>
|
|
@@ -56,9 +56,9 @@ Requires-Dist: pytest-asyncio>=0.20.0; extra == "test"
|
|
|
56
56
|
Requires-Dist: pytest-cov>=4.0.0; extra == "test"
|
|
57
57
|
Requires-Dist: requests-mock>=1.9.0; extra == "test"
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
# PURVIEW CLI v1.2.5 - Microsoft Purview Automation & Data Governance
|
|
60
60
|
|
|
61
|
-
> **LATEST UPDATE v1.2.
|
|
61
|
+
> **LATEST UPDATE v1.2.5 (October 2025):**
|
|
62
62
|
>
|
|
63
63
|
> - **[NEW]** Lineage CSV Import - Bulk import lineage relationships from CSV files with validation and sample generation
|
|
64
64
|
> - **[FIXED]** Search API Integration - Fixed `suggest` and `autocomplete` API payload format (HTTP 400 errors resolved)
|
|
@@ -77,7 +77,7 @@ Requires-Dist: requests-mock>=1.9.0; extra == "test"
|
|
|
77
77
|
|
|
78
78
|
## What is PVW CLI?
|
|
79
79
|
|
|
80
|
-
**PVW CLI v1.2.
|
|
80
|
+
**PVW CLI v1.2.5** is a modern, full-featured command-line interface and Python library for Microsoft Purview. It enables automation and management of *all major Purview APIs* including:
|
|
81
81
|
|
|
82
82
|
- **Unified Catalog (UC) Management** - Complete governance domains, glossary terms, data products, OKRs, CDEs
|
|
83
83
|
- **Bulk Operations** - Import/export terms from CSV/JSON, bulk delete scripts with progress tracking
|
|
@@ -92,6 +92,15 @@ Requires-Dist: requests-mock>=1.9.0; extra == "test"
|
|
|
92
92
|
|
|
93
93
|
The CLI is designed for data engineers, stewards, architects, and platform teams to automate, scale, and enhance their Microsoft Purview experience.
|
|
94
94
|
|
|
95
|
+
### NEW: MCP Server for AI Assistants
|
|
96
|
+
|
|
97
|
+
**[NEW]** Model Context Protocol (MCP) server enables LLM-powered data governance workflows!
|
|
98
|
+
|
|
99
|
+
- Natural language interface to Purview catalog
|
|
100
|
+
- 20+ tools for AI assistants (Claude, Cline, etc.)
|
|
101
|
+
- Automate complex multi-step operations
|
|
102
|
+
- See `mcp/README.md` for setup instructions
|
|
103
|
+
|
|
95
104
|
---
|
|
96
105
|
|
|
97
106
|
## Getting Started
|
|
@@ -169,8 +178,9 @@ For more advanced usage, see the documentation in `doc/` or the project docs: <h
|
|
|
169
178
|
|
|
170
179
|
## Overview
|
|
171
180
|
|
|
172
|
-
**PVW CLI v1.2.
|
|
181
|
+
**PVW CLI v1.2.5** is a modern command-line interface and Python library for Microsoft Purview, enabling:
|
|
173
182
|
|
|
183
|
+
- **MCP Server** - Natural language interface for AI assistants (Claude, Cline)
|
|
174
184
|
- Advanced data catalog search and discovery
|
|
175
185
|
- Bulk import/export of entities, glossary terms, and lineage
|
|
176
186
|
- Real-time monitoring and analytics
|
|
@@ -533,7 +543,7 @@ The PVW CLI provides advanced search using the latest Microsoft Purview Discover
|
|
|
533
543
|
- Use autocomplete and suggestion endpoints
|
|
534
544
|
- Perform faceted, time-based, and entity-type-specific queries
|
|
535
545
|
|
|
536
|
-
**v1.2.
|
|
546
|
+
**v1.2.5 Improvements:**
|
|
537
547
|
|
|
538
548
|
- Fixed `suggest` and `autocomplete` API payload format (removed empty filter causing HTTP 400 errors)
|
|
539
549
|
- Enhanced collection display with robust type checking and fallback logic
|
|
@@ -1297,7 +1307,7 @@ PVW CLI includes comprehensive sample files and scripts for bulk operations:
|
|
|
1297
1307
|
- Success/failure tracking per term
|
|
1298
1308
|
- Rate limiting (200ms delay)
|
|
1299
1309
|
|
|
1300
|
-
### Critical Fixes (v1.2.
|
|
1310
|
+
### Critical Fixes (v1.2.5)
|
|
1301
1311
|
|
|
1302
1312
|
- **Search API Suggest/Autocomplete:** Fixed HTTP 400 errors by removing empty filter objects from payload
|
|
1303
1313
|
- **Collection Display:** Enhanced collection name detection with proper fallback logic (isinstance checks)
|
|
@@ -1360,9 +1370,9 @@ See [LICENSE](LICENSE) file for details.
|
|
|
1360
1370
|
|
|
1361
1371
|
---
|
|
1362
1372
|
|
|
1363
|
-
**PVW CLI v1.2.
|
|
1373
|
+
**PVW CLI v1.2.5 empowers data engineers, stewards, and architects to automate, scale, and enhance their Microsoft Purview experience with powerful command-line and programmatic capabilities.**
|
|
1364
1374
|
|
|
1365
|
-
**Latest in v1.2.
|
|
1375
|
+
**Latest in v1.2.5:**
|
|
1366
1376
|
|
|
1367
1377
|
- Fixed Search API suggest/autocomplete (HTTP 400 errors resolved)
|
|
1368
1378
|
- Enhanced collection display with robust fallback logic
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
purviewcli/__init__.py,sha256=
|
|
1
|
+
purviewcli/__init__.py,sha256=23VtzlJEYGWy2DbEhMPKs9sP_FnweH6AZudyZMlkkzU,413
|
|
2
2
|
purviewcli/__main__.py,sha256=n_PFo1PjW8L1OKCNLsW0vlVSo8tzac_saEYYLTu93iQ,372
|
|
3
3
|
purviewcli/cli/__init__.py,sha256=UGMctZaXXsV2l2ycnmhTgyksH81_JBQjAPq3oRF2Dqk,56
|
|
4
4
|
purviewcli/cli/account.py,sha256=Z_bwhKriMQpoBicOORM64wpQ1MJ94QG7jGKiaG-D_r8,7092
|
|
@@ -16,14 +16,14 @@ purviewcli/cli/relationship.py,sha256=Ky4klI-clKh6sRK7bsI7SwgtVrpo1ljegVyrbqjkeO
|
|
|
16
16
|
purviewcli/cli/scan.py,sha256=91iKDH8iVNJKndJAisrKx3J4HRoPH2qfmxguLZH3xHY,13807
|
|
17
17
|
purviewcli/cli/search.py,sha256=QNAKiFSi8oSEwzh-ksR4vhNAZ1z0dje1icdg36xRMvk,22667
|
|
18
18
|
purviewcli/cli/share.py,sha256=QRZhHM59RxdYqXOjSYLfVRZmjwMg4Y-bWxMSQVTQiIE,20197
|
|
19
|
-
purviewcli/cli/types.py,sha256=
|
|
20
|
-
purviewcli/cli/unified_catalog.py,sha256=
|
|
19
|
+
purviewcli/cli/types.py,sha256=G9QPMPrizEqF36unTvKa2oWkycUV30FTKJu557l01cQ,39101
|
|
20
|
+
purviewcli/cli/unified_catalog.py,sha256=K80vUidibPMoMy97lODpordL1HCSKwTHOsFKJDgwZsY,134310
|
|
21
21
|
purviewcli/cli/workflow.py,sha256=c1Gmlffbs7DV_rBw7LIunyc2PukcRiV1Sv5ifnQBZD4,14735
|
|
22
22
|
purviewcli/client/__init__.py,sha256=qjhTkXkgxlNUY3R1HkrT_Znt03-2d8JDolPVOeVv2xI,37
|
|
23
23
|
purviewcli/client/_account.py,sha256=5lacA7vvjGBLHUDRjFR7B5E8eN6T07rctVDRXR9JFTY,12397
|
|
24
24
|
purviewcli/client/_collections.py,sha256=17ma6aD6gftIe-Nhwy96TPE42O6qp0hmw84xei4VPpo,12101
|
|
25
25
|
purviewcli/client/_domain.py,sha256=Yt4RsIoGWz6ND9Ii4CtoGM6leEAL_KNXYcp6AK9KMqs,3744
|
|
26
|
-
purviewcli/client/_entity.py,sha256=
|
|
26
|
+
purviewcli/client/_entity.py,sha256=gDQRMxNkY1A1QmESBPwtCLAropQgwVwBx84D_OdZRdU,23252
|
|
27
27
|
purviewcli/client/_glossary.py,sha256=7kB3RXVOCCR1RGlaALmr_BwN6S76-xCoyVqD5ZMzt-k,20985
|
|
28
28
|
purviewcli/client/_health.py,sha256=bKX2PChw2OB2kD_ZEfWlDxc093qQX3ai31YCQQ2VaKg,5921
|
|
29
29
|
purviewcli/client/_insight.py,sha256=2KX6dVAkyFFMLuQ02Ko2J7WhARKlCLhSgtFkjFJxZ7c,16031
|
|
@@ -34,15 +34,15 @@ purviewcli/client/_relationship.py,sha256=KJZRltrzpTw7cfKjlZH2MuoTPS7eHxxp3cqU2e
|
|
|
34
34
|
purviewcli/client/_scan.py,sha256=2atEBD-kKWtFuBSWh2P0cwp42gfg7qgwWq-072QZMs4,15154
|
|
35
35
|
purviewcli/client/_search.py,sha256=9QfRE7FUukhpMQ_Xc9NziG6aKFMlPt4_OVaI0QinGa8,12019
|
|
36
36
|
purviewcli/client/_share.py,sha256=vKENIhePuzi3WQazNfv5U9y-6yxRk222zrFA-SGh1pc,10494
|
|
37
|
-
purviewcli/client/_types.py,sha256=
|
|
38
|
-
purviewcli/client/_unified_catalog.py,sha256=
|
|
37
|
+
purviewcli/client/_types.py,sha256=bjR78rV9luTawPw_aGWkE2Xv1fESoqbMQFYIQVDmRns,16753
|
|
38
|
+
purviewcli/client/_unified_catalog.py,sha256=D0ztMR6rhBenLYWiEa43WQ_pA8LA3gULnhFS1G-YBwo,62747
|
|
39
39
|
purviewcli/client/_workflow.py,sha256=po5lomq07s3d7IAzZ5ved5JO6SsBU_JUA4lQSObdJR4,17904
|
|
40
40
|
purviewcli/client/api_client.py,sha256=rNRUhkmZhoCHKWhUvZFUXEWj5eC8LSSnXYYNMb5lHNM,22964
|
|
41
41
|
purviewcli/client/business_rules.py,sha256=VR4QqOE1Pg0nFjqAE-zbt-KqIenvzImLU-TBLki9bYc,27560
|
|
42
42
|
purviewcli/client/config.py,sha256=pQIA168XxeddTSaZJ5qXI7KolIrLqDyBTgbILdDzEs0,7963
|
|
43
43
|
purviewcli/client/data_quality.py,sha256=lAb-ma5MY2nyY4Dq8Q5wN9wzY0J9FikiQN8jPO2u6VU,14988
|
|
44
44
|
purviewcli/client/endpoint.py,sha256=DWCXOkzQWIfhJKmEZEGRCw3PZgBkB0okr3SGa34tmAY,4009
|
|
45
|
-
purviewcli/client/endpoints.py,sha256=
|
|
45
|
+
purviewcli/client/endpoints.py,sha256=uTRre8kISXAuJk_OBKeQCV8p9eul4jn5Ja09OejhFHY,32196
|
|
46
46
|
purviewcli/client/exceptions.py,sha256=3UA6wUa-SLxfhGvkdOgJouvOJGulvG1zt6eRN_4imsg,1244
|
|
47
47
|
purviewcli/client/lineage_visualization.py,sha256=rFKr5cYDauwg4QEHKI7kkqKdHQKgMG6CSUPOmhAz3fI,29644
|
|
48
48
|
purviewcli/client/monitoring_dashboard.py,sha256=OqpBW4SdQzgYoa7lNQiNdVqfS-5LVf9OffeasTSD85Y,27983
|
|
@@ -53,8 +53,8 @@ purviewcli/client/settings.py,sha256=nYdnYurTZsgv9vcgljnzVxLPtYVl9q6IplqOzi1aRvI
|
|
|
53
53
|
purviewcli/client/sync_client.py,sha256=gwCqesJTNaXn1Q-j57O95R9mn3fIOhdP4sc8jBaBcYw,9493
|
|
54
54
|
purviewcli/plugins/__init__.py,sha256=rpt3OhFt_wSE_o8Ga8AXvw1pqkdBxLmjrhYtE_-LuJo,29
|
|
55
55
|
purviewcli/plugins/plugin_system.py,sha256=C-_dL4FUj90o1JS7Saxkpov6fz0GIF5PFhZTYwqBkWE,26774
|
|
56
|
-
pvw_cli-1.2.
|
|
57
|
-
pvw_cli-1.2.
|
|
58
|
-
pvw_cli-1.2.
|
|
59
|
-
pvw_cli-1.2.
|
|
60
|
-
pvw_cli-1.2.
|
|
56
|
+
pvw_cli-1.2.5.dist-info/METADATA,sha256=iNCAmJmBTFboS-pjFo8VULfMAP6SZJC5ptVYLT8scEE,44160
|
|
57
|
+
pvw_cli-1.2.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
58
|
+
pvw_cli-1.2.5.dist-info/entry_points.txt,sha256=VI6AAbc6sWahOCX7sn_lhJIr9OiJM0pHF7rmw1YVGlE,82
|
|
59
|
+
pvw_cli-1.2.5.dist-info/top_level.txt,sha256=LrADzPoKwF1xY0pGKpWauyOVruHCIWKCkT7cwIl6IuI,11
|
|
60
|
+
pvw_cli-1.2.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|