pvw-cli 1.2.2__tar.gz → 1.2.3__tar.gz
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.
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/PKG-INFO +26 -9
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/README.md +25 -8
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/__init__.py +2 -2
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/search.py +10 -4
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/_search.py +8 -8
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/pvw_cli.egg-info/PKG-INFO +26 -9
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/pyproject.toml +3 -3
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/__main__.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/__init__.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/account.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/cli.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/collections.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/domain.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/entity.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/glossary.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/health.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/insight.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/lineage.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/management.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/policystore.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/relationship.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/scan.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/share.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/types.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/unified_catalog.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/cli/workflow.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/__init__.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/_account.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/_collections.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/_domain.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/_entity.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/_glossary.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/_health.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/_insight.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/_lineage.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/_management.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/_policystore.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/_relationship.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/_scan.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/_share.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/_types.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/_unified_catalog.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/_workflow.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/api_client.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/business_rules.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/config.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/data_quality.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/endpoint.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/endpoints.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/exceptions.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/lineage_visualization.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/monitoring_dashboard.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/rate_limiter.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/retry_handler.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/scanning_operations.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/settings.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/client/sync_client.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/plugins/__init__.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/purviewcli/plugins/plugin_system.py +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/pvw_cli.egg-info/SOURCES.txt +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/pvw_cli.egg-info/dependency_links.txt +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/pvw_cli.egg-info/entry_points.txt +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/pvw_cli.egg-info/not-zip-safe +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/pvw_cli.egg-info/requires.txt +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/pvw_cli.egg-info/top_level.txt +0 -0
- {pvw_cli-1.2.2 → pvw_cli-1.2.3}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pvw-cli
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.3
|
|
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,10 +56,13 @@ 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
|
-
# PURVIEW CLI v1.2.
|
|
59
|
+
# PURVIEW CLI v1.2.3 - Microsoft Purview Automation & Data Governance
|
|
60
60
|
|
|
61
|
-
> **LATEST UPDATE (October 2025):**
|
|
62
|
-
> -
|
|
61
|
+
> **LATEST UPDATE v1.2.3 (October 2025):**
|
|
62
|
+
> - **🔍 FIXED: Search API Integration** - Fixed `suggest` and `autocomplete` API payload format (HTTP 400 errors resolved)
|
|
63
|
+
> - **📊 ENHANCED: Collection Display** - Improved collection name detection in search results with proper fallback logic
|
|
64
|
+
> - **✅ VALIDATED: All Search Commands** - Comprehensive testing of query, browse, suggest, find-table operations
|
|
65
|
+
> - **📦 NEW: Bulk Term Import/Export** - Import multiple terms from CSV/JSON with dry-run support
|
|
63
66
|
> - **🗑️ NEW: Bulk Delete Scripts** - PowerShell and Python scripts for bulk term deletion
|
|
64
67
|
> - **📊 NEW: Multiple Output Formats** - `--output` flag supports table, json, and jsonc formats
|
|
65
68
|
> - **🔧 NEW: PowerShell Integration** - Plain JSON output works with `ConvertFrom-Json`
|
|
@@ -72,7 +75,7 @@ Requires-Dist: requests-mock>=1.9.0; extra == "test"
|
|
|
72
75
|
|
|
73
76
|
## What is PVW CLI?
|
|
74
77
|
|
|
75
|
-
**PVW CLI v1.2.
|
|
78
|
+
**PVW CLI v1.2.3** 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:
|
|
76
79
|
|
|
77
80
|
- **Unified Catalog (UC) Management** - Complete governance domains, glossary terms, data products, OKRs, CDEs
|
|
78
81
|
- **Bulk Operations** - Import/export terms from CSV/JSON, bulk delete scripts with progress tracking
|
|
@@ -164,7 +167,7 @@ For more advanced usage, see the documentation in `doc/` or the project docs: ht
|
|
|
164
167
|
|
|
165
168
|
## Overview
|
|
166
169
|
|
|
167
|
-
**PVW CLI v1.2.
|
|
170
|
+
**PVW CLI v1.2.3** is a modern command-line interface and Python library for Microsoft Purview, enabling:
|
|
168
171
|
|
|
169
172
|
- Advanced data catalog search and discovery
|
|
170
173
|
- Bulk import/export of entities, glossary terms, and lineage
|
|
@@ -511,6 +514,11 @@ The PVW CLI provides advanced search using the latest Microsoft Purview Discover
|
|
|
511
514
|
- Use autocomplete and suggestion endpoints
|
|
512
515
|
- Perform faceted, time-based, and entity-type-specific queries
|
|
513
516
|
|
|
517
|
+
**✅ v1.2.3 Improvements:**
|
|
518
|
+
- Fixed `suggest` and `autocomplete` API payload format (removed empty filter causing HTTP 400 errors)
|
|
519
|
+
- Enhanced collection display with robust type checking and fallback logic
|
|
520
|
+
- All search commands validated and working correctly (query, browse, suggest, find-table)
|
|
521
|
+
|
|
514
522
|
### CLI Usage Examples
|
|
515
523
|
|
|
516
524
|
#### 🎯 **Multiple Output Formats**
|
|
@@ -1149,10 +1157,13 @@ PVW CLI includes comprehensive sample files and scripts for bulk operations:
|
|
|
1149
1157
|
- Success/failure tracking per term
|
|
1150
1158
|
- Rate limiting (200ms delay)
|
|
1151
1159
|
|
|
1152
|
-
### ✅ Critical Fixes
|
|
1160
|
+
### ✅ Critical Fixes (v1.2.3)
|
|
1161
|
+
- **Search API Suggest/Autocomplete:** Fixed HTTP 400 errors by removing empty filter objects from payload
|
|
1162
|
+
- **Collection Display:** Enhanced collection name detection with proper fallback logic (isinstance checks)
|
|
1153
1163
|
- **Owner ID Format:** Must use Entra ID Object IDs (GUIDs), not email addresses
|
|
1154
1164
|
- **Domain Status:** Terms cannot be "Published" in unpublished domains - use "Draft"
|
|
1155
1165
|
- **Error Validation:** Enhanced error handling shows actual API responses
|
|
1166
|
+
- **Windows Console Compatibility:** All emoji removed for CP-1252 encoding support
|
|
1156
1167
|
|
|
1157
1168
|
---
|
|
1158
1169
|
|
|
@@ -1203,6 +1214,12 @@ See [LICENSE](LICENSE) file for details.
|
|
|
1203
1214
|
|
|
1204
1215
|
---
|
|
1205
1216
|
|
|
1206
|
-
**PVW CLI v1.2.
|
|
1217
|
+
**PVW CLI v1.2.3 empowers data engineers, stewards, and architects to automate, scale, and enhance their Microsoft Purview experience with powerful command-line and programmatic capabilities.**
|
|
1207
1218
|
|
|
1208
|
-
**Latest
|
|
1219
|
+
**Latest in v1.2.3:**
|
|
1220
|
+
- Fixed Search API suggest/autocomplete (HTTP 400 errors resolved)
|
|
1221
|
+
- Enhanced collection display with robust fallback logic
|
|
1222
|
+
- Comprehensive search command validation
|
|
1223
|
+
- Bulk term import/export with dry-run support
|
|
1224
|
+
- PowerShell integration with plain JSON output
|
|
1225
|
+
- Multiple output formats and beautiful progress tracking
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
# PURVIEW CLI v1.2.
|
|
1
|
+
# PURVIEW CLI v1.2.3 - Microsoft Purview Automation & Data Governance
|
|
2
2
|
|
|
3
|
-
> **LATEST UPDATE (October 2025):**
|
|
4
|
-
> -
|
|
3
|
+
> **LATEST UPDATE v1.2.3 (October 2025):**
|
|
4
|
+
> - **🔍 FIXED: Search API Integration** - Fixed `suggest` and `autocomplete` API payload format (HTTP 400 errors resolved)
|
|
5
|
+
> - **📊 ENHANCED: Collection Display** - Improved collection name detection in search results with proper fallback logic
|
|
6
|
+
> - **✅ VALIDATED: All Search Commands** - Comprehensive testing of query, browse, suggest, find-table operations
|
|
7
|
+
> - **📦 NEW: Bulk Term Import/Export** - Import multiple terms from CSV/JSON with dry-run support
|
|
5
8
|
> - **🗑️ NEW: Bulk Delete Scripts** - PowerShell and Python scripts for bulk term deletion
|
|
6
9
|
> - **📊 NEW: Multiple Output Formats** - `--output` flag supports table, json, and jsonc formats
|
|
7
10
|
> - **🔧 NEW: PowerShell Integration** - Plain JSON output works with `ConvertFrom-Json`
|
|
@@ -14,7 +17,7 @@
|
|
|
14
17
|
|
|
15
18
|
## What is PVW CLI?
|
|
16
19
|
|
|
17
|
-
**PVW CLI v1.2.
|
|
20
|
+
**PVW CLI v1.2.3** 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:
|
|
18
21
|
|
|
19
22
|
- **Unified Catalog (UC) Management** - Complete governance domains, glossary terms, data products, OKRs, CDEs
|
|
20
23
|
- **Bulk Operations** - Import/export terms from CSV/JSON, bulk delete scripts with progress tracking
|
|
@@ -106,7 +109,7 @@ For more advanced usage, see the documentation in `doc/` or the project docs: ht
|
|
|
106
109
|
|
|
107
110
|
## Overview
|
|
108
111
|
|
|
109
|
-
**PVW CLI v1.2.
|
|
112
|
+
**PVW CLI v1.2.3** is a modern command-line interface and Python library for Microsoft Purview, enabling:
|
|
110
113
|
|
|
111
114
|
- Advanced data catalog search and discovery
|
|
112
115
|
- Bulk import/export of entities, glossary terms, and lineage
|
|
@@ -453,6 +456,11 @@ The PVW CLI provides advanced search using the latest Microsoft Purview Discover
|
|
|
453
456
|
- Use autocomplete and suggestion endpoints
|
|
454
457
|
- Perform faceted, time-based, and entity-type-specific queries
|
|
455
458
|
|
|
459
|
+
**✅ v1.2.3 Improvements:**
|
|
460
|
+
- Fixed `suggest` and `autocomplete` API payload format (removed empty filter causing HTTP 400 errors)
|
|
461
|
+
- Enhanced collection display with robust type checking and fallback logic
|
|
462
|
+
- All search commands validated and working correctly (query, browse, suggest, find-table)
|
|
463
|
+
|
|
456
464
|
### CLI Usage Examples
|
|
457
465
|
|
|
458
466
|
#### 🎯 **Multiple Output Formats**
|
|
@@ -1091,10 +1099,13 @@ PVW CLI includes comprehensive sample files and scripts for bulk operations:
|
|
|
1091
1099
|
- Success/failure tracking per term
|
|
1092
1100
|
- Rate limiting (200ms delay)
|
|
1093
1101
|
|
|
1094
|
-
### ✅ Critical Fixes
|
|
1102
|
+
### ✅ Critical Fixes (v1.2.3)
|
|
1103
|
+
- **Search API Suggest/Autocomplete:** Fixed HTTP 400 errors by removing empty filter objects from payload
|
|
1104
|
+
- **Collection Display:** Enhanced collection name detection with proper fallback logic (isinstance checks)
|
|
1095
1105
|
- **Owner ID Format:** Must use Entra ID Object IDs (GUIDs), not email addresses
|
|
1096
1106
|
- **Domain Status:** Terms cannot be "Published" in unpublished domains - use "Draft"
|
|
1097
1107
|
- **Error Validation:** Enhanced error handling shows actual API responses
|
|
1108
|
+
- **Windows Console Compatibility:** All emoji removed for CP-1252 encoding support
|
|
1098
1109
|
|
|
1099
1110
|
---
|
|
1100
1111
|
|
|
@@ -1145,6 +1156,12 @@ See [LICENSE](LICENSE) file for details.
|
|
|
1145
1156
|
|
|
1146
1157
|
---
|
|
1147
1158
|
|
|
1148
|
-
**PVW CLI v1.2.
|
|
1159
|
+
**PVW CLI v1.2.3 empowers data engineers, stewards, and architects to automate, scale, and enhance their Microsoft Purview experience with powerful command-line and programmatic capabilities.**
|
|
1149
1160
|
|
|
1150
|
-
**Latest
|
|
1161
|
+
**Latest in v1.2.3:**
|
|
1162
|
+
- Fixed Search API suggest/autocomplete (HTTP 400 errors resolved)
|
|
1163
|
+
- Enhanced collection display with robust fallback logic
|
|
1164
|
+
- Comprehensive search command validation
|
|
1165
|
+
- Bulk term import/export with dry-run support
|
|
1166
|
+
- PowerShell integration with plain JSON output
|
|
1167
|
+
- Multiple output formats and beautiful progress tracking
|
|
@@ -157,11 +157,17 @@ def _format_search_results(data, show_ids=False):
|
|
|
157
157
|
# Handle collection - try multiple sources
|
|
158
158
|
collection = 'N/A'
|
|
159
159
|
if 'collection' in item and item['collection']:
|
|
160
|
-
|
|
161
|
-
|
|
160
|
+
if isinstance(item['collection'], dict):
|
|
161
|
+
collection = item['collection'].get('name', 'N/A')
|
|
162
|
+
else:
|
|
163
|
+
collection = str(item['collection'])
|
|
164
|
+
elif 'collectionId' in item and item['collectionId']:
|
|
162
165
|
collection = item.get('collectionId', 'N/A')
|
|
163
|
-
elif 'assetName' in item:
|
|
164
|
-
collection
|
|
166
|
+
elif 'assetName' in item and item['assetName']:
|
|
167
|
+
# Try to extract collection from asset name
|
|
168
|
+
asset_name = item.get('assetName', '')
|
|
169
|
+
if asset_name and asset_name != 'N/A':
|
|
170
|
+
collection = asset_name
|
|
165
171
|
|
|
166
172
|
# Build row data with ID always shown
|
|
167
173
|
row_data = [name, entity_type, entity_id, collection, qualified_name]
|
|
@@ -93,13 +93,13 @@ class Search(Endpoint):
|
|
|
93
93
|
self.endpoint = ENDPOINTS["discovery"]["suggest"]
|
|
94
94
|
self.params = get_api_version_params("datamap")
|
|
95
95
|
|
|
96
|
+
# Suggest API expects keywords in search field, not keywords field
|
|
96
97
|
suggest_request = {
|
|
97
|
-
"keywords": args.get("--keywords", ""),
|
|
98
|
-
"limit": args.get("--limit", 5)
|
|
99
|
-
"filter": {}
|
|
98
|
+
"keywords": args.get("--keywords", "*"),
|
|
99
|
+
"limit": args.get("--limit", 5)
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
#
|
|
102
|
+
# Only add filter if provided and not empty
|
|
103
103
|
if args.get("--filter"):
|
|
104
104
|
suggest_request["filter"] = self._parse_filter(args["--filter"])
|
|
105
105
|
|
|
@@ -107,18 +107,18 @@ class Search(Endpoint):
|
|
|
107
107
|
|
|
108
108
|
@decorator
|
|
109
109
|
def searchAutocomplete(self, args):
|
|
110
|
-
"""Get autocomplete suggestions (Official API:
|
|
110
|
+
"""Get search autocomplete suggestions (Official API: AutoComplete)"""
|
|
111
111
|
self.method = "POST"
|
|
112
112
|
self.endpoint = ENDPOINTS["discovery"]["autocomplete"]
|
|
113
113
|
self.params = get_api_version_params("datamap")
|
|
114
114
|
|
|
115
|
+
# Autocomplete API expects keywords (text to complete)
|
|
115
116
|
autocomplete_request = {
|
|
116
117
|
"keywords": args.get("--keywords", ""),
|
|
117
|
-
"limit": args.get("--limit",
|
|
118
|
-
"filter": {}
|
|
118
|
+
"limit": args.get("--limit", 5)
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
#
|
|
121
|
+
# Only add filter if provided and not empty
|
|
122
122
|
if args.get("--filter"):
|
|
123
123
|
autocomplete_request["filter"] = self._parse_filter(args["--filter"])
|
|
124
124
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pvw-cli
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.3
|
|
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,10 +56,13 @@ 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
|
-
# PURVIEW CLI v1.2.
|
|
59
|
+
# PURVIEW CLI v1.2.3 - Microsoft Purview Automation & Data Governance
|
|
60
60
|
|
|
61
|
-
> **LATEST UPDATE (October 2025):**
|
|
62
|
-
> -
|
|
61
|
+
> **LATEST UPDATE v1.2.3 (October 2025):**
|
|
62
|
+
> - **🔍 FIXED: Search API Integration** - Fixed `suggest` and `autocomplete` API payload format (HTTP 400 errors resolved)
|
|
63
|
+
> - **📊 ENHANCED: Collection Display** - Improved collection name detection in search results with proper fallback logic
|
|
64
|
+
> - **✅ VALIDATED: All Search Commands** - Comprehensive testing of query, browse, suggest, find-table operations
|
|
65
|
+
> - **📦 NEW: Bulk Term Import/Export** - Import multiple terms from CSV/JSON with dry-run support
|
|
63
66
|
> - **🗑️ NEW: Bulk Delete Scripts** - PowerShell and Python scripts for bulk term deletion
|
|
64
67
|
> - **📊 NEW: Multiple Output Formats** - `--output` flag supports table, json, and jsonc formats
|
|
65
68
|
> - **🔧 NEW: PowerShell Integration** - Plain JSON output works with `ConvertFrom-Json`
|
|
@@ -72,7 +75,7 @@ Requires-Dist: requests-mock>=1.9.0; extra == "test"
|
|
|
72
75
|
|
|
73
76
|
## What is PVW CLI?
|
|
74
77
|
|
|
75
|
-
**PVW CLI v1.2.
|
|
78
|
+
**PVW CLI v1.2.3** 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:
|
|
76
79
|
|
|
77
80
|
- **Unified Catalog (UC) Management** - Complete governance domains, glossary terms, data products, OKRs, CDEs
|
|
78
81
|
- **Bulk Operations** - Import/export terms from CSV/JSON, bulk delete scripts with progress tracking
|
|
@@ -164,7 +167,7 @@ For more advanced usage, see the documentation in `doc/` or the project docs: ht
|
|
|
164
167
|
|
|
165
168
|
## Overview
|
|
166
169
|
|
|
167
|
-
**PVW CLI v1.2.
|
|
170
|
+
**PVW CLI v1.2.3** is a modern command-line interface and Python library for Microsoft Purview, enabling:
|
|
168
171
|
|
|
169
172
|
- Advanced data catalog search and discovery
|
|
170
173
|
- Bulk import/export of entities, glossary terms, and lineage
|
|
@@ -511,6 +514,11 @@ The PVW CLI provides advanced search using the latest Microsoft Purview Discover
|
|
|
511
514
|
- Use autocomplete and suggestion endpoints
|
|
512
515
|
- Perform faceted, time-based, and entity-type-specific queries
|
|
513
516
|
|
|
517
|
+
**✅ v1.2.3 Improvements:**
|
|
518
|
+
- Fixed `suggest` and `autocomplete` API payload format (removed empty filter causing HTTP 400 errors)
|
|
519
|
+
- Enhanced collection display with robust type checking and fallback logic
|
|
520
|
+
- All search commands validated and working correctly (query, browse, suggest, find-table)
|
|
521
|
+
|
|
514
522
|
### CLI Usage Examples
|
|
515
523
|
|
|
516
524
|
#### 🎯 **Multiple Output Formats**
|
|
@@ -1149,10 +1157,13 @@ PVW CLI includes comprehensive sample files and scripts for bulk operations:
|
|
|
1149
1157
|
- Success/failure tracking per term
|
|
1150
1158
|
- Rate limiting (200ms delay)
|
|
1151
1159
|
|
|
1152
|
-
### ✅ Critical Fixes
|
|
1160
|
+
### ✅ Critical Fixes (v1.2.3)
|
|
1161
|
+
- **Search API Suggest/Autocomplete:** Fixed HTTP 400 errors by removing empty filter objects from payload
|
|
1162
|
+
- **Collection Display:** Enhanced collection name detection with proper fallback logic (isinstance checks)
|
|
1153
1163
|
- **Owner ID Format:** Must use Entra ID Object IDs (GUIDs), not email addresses
|
|
1154
1164
|
- **Domain Status:** Terms cannot be "Published" in unpublished domains - use "Draft"
|
|
1155
1165
|
- **Error Validation:** Enhanced error handling shows actual API responses
|
|
1166
|
+
- **Windows Console Compatibility:** All emoji removed for CP-1252 encoding support
|
|
1156
1167
|
|
|
1157
1168
|
---
|
|
1158
1169
|
|
|
@@ -1203,6 +1214,12 @@ See [LICENSE](LICENSE) file for details.
|
|
|
1203
1214
|
|
|
1204
1215
|
---
|
|
1205
1216
|
|
|
1206
|
-
**PVW CLI v1.2.
|
|
1217
|
+
**PVW CLI v1.2.3 empowers data engineers, stewards, and architects to automate, scale, and enhance their Microsoft Purview experience with powerful command-line and programmatic capabilities.**
|
|
1207
1218
|
|
|
1208
|
-
**Latest
|
|
1219
|
+
**Latest in v1.2.3:**
|
|
1220
|
+
- Fixed Search API suggest/autocomplete (HTTP 400 errors resolved)
|
|
1221
|
+
- Enhanced collection display with robust fallback logic
|
|
1222
|
+
- Comprehensive search command validation
|
|
1223
|
+
- Bulk term import/export with dry-run support
|
|
1224
|
+
- PowerShell integration with plain JSON output
|
|
1225
|
+
- Multiple output formats and beautiful progress tracking
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pvw-cli"
|
|
7
|
-
version = "1.2.
|
|
7
|
+
version = "1.2.3"
|
|
8
8
|
description = "Microsoft Purview CLI with comprehensive automation capabilities"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
@@ -119,7 +119,7 @@ use_parentheses = true
|
|
|
119
119
|
ensure_newline_before_comments = true
|
|
120
120
|
|
|
121
121
|
[tool.pytest.ini_options]
|
|
122
|
-
minversion = "
|
|
122
|
+
minversion = "1.2.3"
|
|
123
123
|
addopts = "-ra -q --strict-markers --strict-config"
|
|
124
124
|
testpaths = [
|
|
125
125
|
"tests",
|
|
@@ -132,7 +132,7 @@ markers = [
|
|
|
132
132
|
]
|
|
133
133
|
|
|
134
134
|
[tool.mypy]
|
|
135
|
-
python_version = "3
|
|
135
|
+
python_version = "1.2.3"
|
|
136
136
|
warn_return_any = true
|
|
137
137
|
warn_unused_configs = true
|
|
138
138
|
disallow_untyped_defs = true
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|