pvw-cli 1.2.3__tar.gz → 1.2.4__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.3 → pvw_cli-1.2.4}/PKG-INFO +222 -75
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/README.md +221 -74
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/__init__.py +1 -1
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/lineage.py +4 -1
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/_lineage.py +206 -44
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/pvw_cli.egg-info/PKG-INFO +222 -75
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/pyproject.toml +3 -3
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/__main__.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/__init__.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/account.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/cli.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/collections.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/domain.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/entity.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/glossary.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/health.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/insight.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/management.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/policystore.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/relationship.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/scan.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/search.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/share.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/types.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/unified_catalog.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/cli/workflow.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/__init__.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/_account.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/_collections.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/_domain.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/_entity.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/_glossary.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/_health.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/_insight.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/_management.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/_policystore.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/_relationship.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/_scan.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/_search.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/_share.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/_types.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/_unified_catalog.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/_workflow.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/api_client.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/business_rules.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/config.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/data_quality.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/endpoint.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/endpoints.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/exceptions.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/lineage_visualization.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/monitoring_dashboard.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/rate_limiter.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/retry_handler.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/scanning_operations.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/settings.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/client/sync_client.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/plugins/__init__.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/purviewcli/plugins/plugin_system.py +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/pvw_cli.egg-info/SOURCES.txt +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/pvw_cli.egg-info/dependency_links.txt +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/pvw_cli.egg-info/entry_points.txt +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/pvw_cli.egg-info/not-zip-safe +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/pvw_cli.egg-info/requires.txt +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/pvw_cli.egg-info/top_level.txt +0 -0
- {pvw_cli-1.2.3 → pvw_cli-1.2.4}/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.4
|
|
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,26 +56,28 @@ 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.
|
|
60
|
-
|
|
61
|
-
> **LATEST UPDATE v1.2.
|
|
62
|
-
>
|
|
63
|
-
> -
|
|
64
|
-
> -
|
|
65
|
-
> -
|
|
66
|
-
> -
|
|
67
|
-
> -
|
|
68
|
-
> -
|
|
69
|
-
> -
|
|
70
|
-
> -
|
|
71
|
-
> -
|
|
72
|
-
> -
|
|
59
|
+
# PURVIEW CLI v1.2.4 - Microsoft Purview Automation & Data Governance
|
|
60
|
+
|
|
61
|
+
> **LATEST UPDATE v1.2.4 (October 2025):**
|
|
62
|
+
>
|
|
63
|
+
> - **[NEW]** Lineage CSV Import - Bulk import lineage relationships from CSV files with validation and sample generation
|
|
64
|
+
> - **[FIXED]** Search API Integration - Fixed `suggest` and `autocomplete` API payload format (HTTP 400 errors resolved)
|
|
65
|
+
> - **[ENHANCED]** Collection Display - Improved collection name detection in search results with proper fallback logic
|
|
66
|
+
> - **[OK]** All Search Commands - Comprehensive testing of query, browse, suggest, find-table operations
|
|
67
|
+
> - **[NEW]** Bulk Term Import/Export - Import multiple terms from CSV/JSON with dry-run support
|
|
68
|
+
> - **[NEW]** Bulk Delete Scripts - PowerShell and Python scripts for bulk term deletion
|
|
69
|
+
> - **[NEW]** Multiple Output Formats - `--output` flag supports table, json, and jsonc formats
|
|
70
|
+
> - **[NEW]** PowerShell Integration - Plain JSON output works with `ConvertFrom-Json`
|
|
71
|
+
> - **[OK]** Complete Data Product CRUD - Full update and delete support with smart partial updates
|
|
72
|
+
> - **[OK]** Health Monitoring API - Automated governance health checks and recommendations
|
|
73
|
+
> - **[OK]** Workflow Management - Approval workflows and business process automation
|
|
74
|
+
> - **[OK]** Complete Microsoft Purview Unified Catalog (UC) - Full governance domains, glossary terms, data products, OKRs, and CDEs
|
|
73
75
|
|
|
74
76
|
---
|
|
75
77
|
|
|
76
78
|
## What is PVW CLI?
|
|
77
79
|
|
|
78
|
-
**PVW CLI v1.2.
|
|
80
|
+
**PVW CLI v1.2.4** 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:
|
|
79
81
|
|
|
80
82
|
- **Unified Catalog (UC) Management** - Complete governance domains, glossary terms, data products, OKRs, CDEs
|
|
81
83
|
- **Bulk Operations** - Import/export terms from CSV/JSON, bulk delete scripts with progress tracking
|
|
@@ -92,7 +94,7 @@ The CLI is designed for data engineers, stewards, architects, and platform teams
|
|
|
92
94
|
|
|
93
95
|
---
|
|
94
96
|
|
|
95
|
-
## Getting Started
|
|
97
|
+
## Getting Started
|
|
96
98
|
|
|
97
99
|
Follow this short flow to get PVW CLI installed and running quickly.
|
|
98
100
|
|
|
@@ -144,8 +146,8 @@ Follow this short flow to get PVW CLI installed and running quickly.
|
|
|
144
146
|
|
|
145
147
|
3. Authenticate
|
|
146
148
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
+
- Run `az login` (recommended), or
|
|
150
|
+
- Provide Service Principal credentials via environment variables.
|
|
149
151
|
|
|
150
152
|
4. Try a few commands:
|
|
151
153
|
|
|
@@ -161,13 +163,13 @@ Follow this short flow to get PVW CLI installed and running quickly.
|
|
|
161
163
|
pvw uc --help
|
|
162
164
|
```
|
|
163
165
|
|
|
164
|
-
For more advanced usage, see the documentation in `doc/` or the project docs: https://pvw-cli.readthedocs.io
|
|
166
|
+
For more advanced usage, see the documentation in `doc/` or the project docs: <https://pvw-cli.readthedocs.io/>
|
|
165
167
|
|
|
166
168
|
---
|
|
167
169
|
|
|
168
170
|
## Overview
|
|
169
171
|
|
|
170
|
-
**PVW CLI v1.2.
|
|
172
|
+
**PVW CLI v1.2.4** is a modern command-line interface and Python library for Microsoft Purview, enabling:
|
|
171
173
|
|
|
172
174
|
- Advanced data catalog search and discovery
|
|
173
175
|
- Bulk import/export of entities, glossary terms, and lineage
|
|
@@ -296,6 +298,7 @@ If you are signed in to Azure in Visual Studio or VS Code, `DefaultAzureCredenti
|
|
|
296
298
|
---
|
|
297
299
|
|
|
298
300
|
**Note:**
|
|
301
|
+
|
|
299
302
|
- The CLI will try all supported authentication methods in order. The first one that works will be used.
|
|
300
303
|
- For most automation and CI/CD scenarios, service principal authentication is recommended.
|
|
301
304
|
- For local development, Azure CLI authentication is easiest.
|
|
@@ -381,11 +384,13 @@ pvw uc dataproduct list --domain-id "abc-123" --output json
|
|
|
381
384
|
### Migration from Old --json Flag
|
|
382
385
|
|
|
383
386
|
**Old (deprecated):**
|
|
387
|
+
|
|
384
388
|
```bash
|
|
385
389
|
pvw uc term list --domain-id "abc-123" --json
|
|
386
390
|
```
|
|
387
391
|
|
|
388
392
|
**New (recommended):**
|
|
393
|
+
|
|
389
394
|
```bash
|
|
390
395
|
pvw uc term list --domain-id "abc-123" --output json # Plain JSON for scripting
|
|
391
396
|
pvw uc term list --domain-id "abc-123" --output jsonc # Colored JSON (old behavior)
|
|
@@ -400,21 +405,25 @@ Before using PVW CLI, you need to set three essential environment variables. Her
|
|
|
400
405
|
### 🔍 **How to Find Your Purview Values**
|
|
401
406
|
|
|
402
407
|
#### **1. PURVIEW_ACCOUNT_NAME**
|
|
408
|
+
|
|
403
409
|
- This is your Purview account name as it appears in Azure Portal
|
|
404
410
|
- Example: `kaydemopurview`
|
|
405
411
|
|
|
406
|
-
#### **2. PURVIEW_ACCOUNT_ID**
|
|
412
|
+
#### **2. PURVIEW_ACCOUNT_ID**
|
|
413
|
+
|
|
407
414
|
- This is the GUID that identifies your Purview account for Unified Catalog APIs
|
|
408
|
-
-
|
|
415
|
+
- **Important: For most Purview deployments, this is your Azure Tenant ID**
|
|
409
416
|
|
|
410
417
|
- **Method 1 - Get your Tenant ID (recommended):**
|
|
411
418
|
|
|
412
419
|
**Bash/Command Prompt:**
|
|
420
|
+
|
|
413
421
|
```bash
|
|
414
422
|
az account show --query tenantId -o tsv
|
|
415
423
|
```
|
|
416
424
|
|
|
417
425
|
**PowerShell:**
|
|
426
|
+
|
|
418
427
|
```powershell
|
|
419
428
|
az account show --query tenantId -o tsv
|
|
420
429
|
# Or store directly in environment variable:
|
|
@@ -422,9 +431,11 @@ Before using PVW CLI, you need to set three essential environment variables. Her
|
|
|
422
431
|
```
|
|
423
432
|
|
|
424
433
|
- **Method 2 - Azure CLI (extract from Atlas endpoint):**
|
|
434
|
+
|
|
425
435
|
```bash
|
|
426
436
|
az purview account show --name YOUR_ACCOUNT_NAME --resource-group YOUR_RG --query endpoints.catalog -o tsv
|
|
427
437
|
```
|
|
438
|
+
|
|
428
439
|
Extract the GUID from the URL (before `-api.purview-service.microsoft.com`)
|
|
429
440
|
|
|
430
441
|
- **Method 3 - Azure Portal:**
|
|
@@ -433,12 +444,14 @@ Before using PVW CLI, you need to set three essential environment variables. Her
|
|
|
433
444
|
3. Extract GUID from: `https://GUID-api.purview-service.microsoft.com/catalog`
|
|
434
445
|
|
|
435
446
|
#### **3. PURVIEW_RESOURCE_GROUP**
|
|
447
|
+
|
|
436
448
|
- The Azure resource group containing your Purview account
|
|
437
449
|
- Example: `fabric-artifacts`
|
|
438
450
|
|
|
439
451
|
### 📋 **Setting the Variables**
|
|
440
452
|
|
|
441
453
|
**Windows Command Prompt:**
|
|
454
|
+
|
|
442
455
|
```cmd
|
|
443
456
|
set PURVIEW_ACCOUNT_NAME=your-purview-account
|
|
444
457
|
set PURVIEW_ACCOUNT_ID=your-purview-account-id
|
|
@@ -446,6 +459,7 @@ set PURVIEW_RESOURCE_GROUP=your-resource-group
|
|
|
446
459
|
```
|
|
447
460
|
|
|
448
461
|
**Windows PowerShell:**
|
|
462
|
+
|
|
449
463
|
```powershell
|
|
450
464
|
$env:PURVIEW_ACCOUNT_NAME="your-purview-account"
|
|
451
465
|
$env:PURVIEW_ACCOUNT_ID="your-purview-account-id"
|
|
@@ -453,6 +467,7 @@ $env:PURVIEW_RESOURCE_GROUP="your-resource-group"
|
|
|
453
467
|
```
|
|
454
468
|
|
|
455
469
|
**Linux/macOS:**
|
|
470
|
+
|
|
456
471
|
```bash
|
|
457
472
|
export PURVIEW_ACCOUNT_NAME=your-purview-account
|
|
458
473
|
export PURVIEW_ACCOUNT_ID=your-purview-account-id
|
|
@@ -460,6 +475,7 @@ export PURVIEW_RESOURCE_GROUP=your-resource-group
|
|
|
460
475
|
```
|
|
461
476
|
|
|
462
477
|
**Permanent (Windows Command Prompt):**
|
|
478
|
+
|
|
463
479
|
```cmd
|
|
464
480
|
setx PURVIEW_ACCOUNT_NAME "your-purview-account"
|
|
465
481
|
setx PURVIEW_ACCOUNT_ID "your-purview-account-id"
|
|
@@ -467,17 +483,19 @@ setx PURVIEW_RESOURCE_GROUP "your-resource-group"
|
|
|
467
483
|
```
|
|
468
484
|
|
|
469
485
|
**Permanent (Windows PowerShell):**
|
|
486
|
+
|
|
470
487
|
```powershell
|
|
471
488
|
[Environment]::SetEnvironmentVariable("PURVIEW_ACCOUNT_NAME", "your-purview-account", "User")
|
|
472
489
|
[Environment]::SetEnvironmentVariable("PURVIEW_ACCOUNT_ID", "your-purview-account-id", "User")
|
|
473
490
|
[Environment]::SetEnvironmentVariable("PURVIEW_RESOURCE_GROUP", "your-resource-group", "User")
|
|
474
491
|
```
|
|
475
492
|
|
|
476
|
-
###
|
|
493
|
+
### **Debug Environment Issues**
|
|
477
494
|
|
|
478
495
|
If you experience issues with environment variables between different terminals, use these debug commands:
|
|
479
496
|
|
|
480
497
|
**Command Prompt/Bash:**
|
|
498
|
+
|
|
481
499
|
```bash
|
|
482
500
|
# Run this to check your current environment
|
|
483
501
|
python -c "
|
|
@@ -489,6 +507,7 @@ print('PURVIEW_RESOURCE_GROUP:', os.getenv('PURVIEW_RESOURCE_GROUP'))
|
|
|
489
507
|
```
|
|
490
508
|
|
|
491
509
|
**PowerShell:**
|
|
510
|
+
|
|
492
511
|
```powershell
|
|
493
512
|
# Check environment variables in PowerShell
|
|
494
513
|
python -c "
|
|
@@ -514,14 +533,15 @@ The PVW CLI provides advanced search using the latest Microsoft Purview Discover
|
|
|
514
533
|
- Use autocomplete and suggestion endpoints
|
|
515
534
|
- Perform faceted, time-based, and entity-type-specific queries
|
|
516
535
|
|
|
517
|
-
|
|
536
|
+
**v1.2.4 Improvements:**
|
|
537
|
+
|
|
518
538
|
- Fixed `suggest` and `autocomplete` API payload format (removed empty filter causing HTTP 400 errors)
|
|
519
539
|
- Enhanced collection display with robust type checking and fallback logic
|
|
520
540
|
- All search commands validated and working correctly (query, browse, suggest, find-table)
|
|
521
541
|
|
|
522
542
|
### CLI Usage Examples
|
|
523
543
|
|
|
524
|
-
####
|
|
544
|
+
#### **Multiple Output Formats**
|
|
525
545
|
|
|
526
546
|
```bash
|
|
527
547
|
# 1. Table Format (Default) - Quick overview
|
|
@@ -541,7 +561,7 @@ pvw search query --keywords="customer" --limit=5 --show-ids
|
|
|
541
561
|
# → Table format + entity GUIDs for copy/paste into update commands
|
|
542
562
|
```
|
|
543
563
|
|
|
544
|
-
####
|
|
564
|
+
#### **Search Operations**
|
|
545
565
|
|
|
546
566
|
```bash
|
|
547
567
|
# Basic search for assets with keyword 'customer'
|
|
@@ -559,12 +579,12 @@ pvw search autocomplete --keywords="ord" --limit=3
|
|
|
559
579
|
# Get search suggestions (fuzzy matching)
|
|
560
580
|
pvw search suggest --keywords="prod" --limit=2
|
|
561
581
|
|
|
562
|
-
|
|
582
|
+
**IMPORTANT - Command Line Quoting:**
|
|
563
583
|
```cmd
|
|
564
|
-
#
|
|
584
|
+
# [OK] CORRECT - Use quotes around keywords
|
|
565
585
|
pvw search query --keywords="customer" --limit=5
|
|
566
586
|
|
|
567
|
-
#
|
|
587
|
+
# [OK] CORRECT - For wildcard searches, use quotes
|
|
568
588
|
pvw search query --keywords="*" --limit=5
|
|
569
589
|
|
|
570
590
|
# ❌ WRONG - Don't use unquoted * (shell expands to file names)
|
|
@@ -586,7 +606,7 @@ pvw search query --keywords="audit" --createdAfter="2024-01-01" --limit=1
|
|
|
586
606
|
pvw search query --keywords="finance" --entityTypes="Files,Tables" --limit=2
|
|
587
607
|
```
|
|
588
608
|
|
|
589
|
-
####
|
|
609
|
+
#### **Usage Scenarios**
|
|
590
610
|
|
|
591
611
|
- **Daily browsing**: Use default table format for quick scans
|
|
592
612
|
- **Understanding assets**: Use `--detailed` for rich information panels
|
|
@@ -629,7 +649,7 @@ See [`doc/commands/unified-catalog.md`](doc/commands/unified-catalog.md) for com
|
|
|
629
649
|
|
|
630
650
|
### Quick UC Examples
|
|
631
651
|
|
|
632
|
-
####
|
|
652
|
+
#### **Governance Domains Management**
|
|
633
653
|
|
|
634
654
|
```bash
|
|
635
655
|
# List all governance domains
|
|
@@ -645,7 +665,7 @@ pvw uc domain get --domain-id "abc-123-def-456"
|
|
|
645
665
|
pvw uc domain update --domain-id "abc-123" --description "Updated financial governance"
|
|
646
666
|
```
|
|
647
667
|
|
|
648
|
-
####
|
|
668
|
+
#### **Glossary Terms in UC**
|
|
649
669
|
|
|
650
670
|
```bash
|
|
651
671
|
# List all terms in a domain
|
|
@@ -686,14 +706,16 @@ pvw uc term import-json --json-file "samples/json/term/uc_terms_bulk_example.jso
|
|
|
686
706
|
```
|
|
687
707
|
|
|
688
708
|
**Bulk Import Features:**
|
|
689
|
-
|
|
690
|
-
-
|
|
691
|
-
-
|
|
692
|
-
-
|
|
693
|
-
-
|
|
694
|
-
-
|
|
709
|
+
|
|
710
|
+
- [OK] Import from CSV or JSON files
|
|
711
|
+
- [OK] Dry-run mode to preview before importing
|
|
712
|
+
- [OK] Support for multiple owners (Entra ID Object IDs), acronyms, and resources
|
|
713
|
+
- [OK] Progress tracking with Rich console output
|
|
714
|
+
- [OK] Detailed error messages and summary reports
|
|
715
|
+
- [OK] Sequential POST requests (no native bulk endpoint available)
|
|
695
716
|
|
|
696
717
|
**CSV Format Example:**
|
|
718
|
+
|
|
697
719
|
```csv
|
|
698
720
|
name,description,status,acronym,owner_id,resource_name,resource_url
|
|
699
721
|
Customer Acquisition Cost,Cost to acquire new customer,Draft,CAC,<guid>,Metrics Guide,https://docs.example.com
|
|
@@ -701,6 +723,7 @@ Monthly Recurring Revenue,Predictable monthly revenue,Draft,MRR,<guid>,Finance D
|
|
|
701
723
|
```
|
|
702
724
|
|
|
703
725
|
**JSON Format Example:**
|
|
726
|
+
|
|
704
727
|
```json
|
|
705
728
|
{
|
|
706
729
|
"terms": [
|
|
@@ -718,9 +741,10 @@ Monthly Recurring Revenue,Predictable monthly revenue,Draft,MRR,<guid>,Finance D
|
|
|
718
741
|
```
|
|
719
742
|
|
|
720
743
|
**Important Notes:**
|
|
744
|
+
|
|
721
745
|
- ⚠️ **Owner IDs must be Entra ID Object IDs (GUIDs)**, not email addresses
|
|
722
746
|
- ⚠️ **Terms cannot be "Published" in unpublished domains** - use "Draft" status
|
|
723
|
-
-
|
|
747
|
+
- [OK] Sample files available: `samples/csv/uc_terms_bulk_example.csv`, `samples/json/term/uc_terms_bulk_example.json`
|
|
724
748
|
- 📖 Complete documentation: [`doc/commands/unified-catalog/term-bulk-import.md`](doc/commands/unified-catalog/term-bulk-import.md)
|
|
725
749
|
|
|
726
750
|
**🗑️ Bulk Delete (NEW)**
|
|
@@ -744,14 +768,15 @@ python scripts/delete_all_uc_terms_v2.py --domain-id "abc-123" --force
|
|
|
744
768
|
```
|
|
745
769
|
|
|
746
770
|
**Bulk Delete Features:**
|
|
747
|
-
- ✅ Interactive confirmation prompts (type "DELETE" to confirm)
|
|
748
|
-
- ✅ Beautiful progress display with colors
|
|
749
|
-
- ✅ Success/failure tracking per term
|
|
750
|
-
- ✅ Detailed summary reports
|
|
751
|
-
- ✅ Rate limiting (200ms delay between deletes)
|
|
752
|
-
- ✅ Graceful error handling and Ctrl+C support
|
|
753
771
|
|
|
754
|
-
|
|
772
|
+
- [OK] Interactive confirmation prompts (type "DELETE" to confirm)
|
|
773
|
+
- [OK] Beautiful progress display with colors
|
|
774
|
+
- [OK] Success/failure tracking per term
|
|
775
|
+
- [OK] Detailed summary reports
|
|
776
|
+
- [OK] Rate limiting (200ms delay between deletes)
|
|
777
|
+
- [OK] Graceful error handling and Ctrl+C support
|
|
778
|
+
|
|
779
|
+
#### **Data Products Management**
|
|
755
780
|
|
|
756
781
|
```bash
|
|
757
782
|
# List all data products in a domain
|
|
@@ -789,7 +814,7 @@ pvw uc dataproduct delete --product-id "prod-789"
|
|
|
789
814
|
pvw uc dataproduct delete --product-id "prod-789" --yes
|
|
790
815
|
```
|
|
791
816
|
|
|
792
|
-
####
|
|
817
|
+
#### **Objectives & Key Results (OKRs)**
|
|
793
818
|
|
|
794
819
|
```bash
|
|
795
820
|
# List objectives for a domain
|
|
@@ -810,7 +835,7 @@ pvw uc objective update \
|
|
|
810
835
|
--status "in-progress"
|
|
811
836
|
```
|
|
812
837
|
|
|
813
|
-
####
|
|
838
|
+
#### **Critical Data Elements (CDEs)**
|
|
814
839
|
|
|
815
840
|
```bash
|
|
816
841
|
# List critical data elements
|
|
@@ -831,7 +856,7 @@ pvw uc cde link \
|
|
|
831
856
|
--asset-id "ea3412c3-7387-4bc1-9923-11f6f6f60000"
|
|
832
857
|
```
|
|
833
858
|
|
|
834
|
-
####
|
|
859
|
+
#### **Health Monitoring (NEW)**
|
|
835
860
|
|
|
836
861
|
Monitor governance health and get automated recommendations to improve your data governance posture.
|
|
837
862
|
|
|
@@ -864,6 +889,7 @@ pvw uc health query --json
|
|
|
864
889
|
```
|
|
865
890
|
|
|
866
891
|
**Health Finding Types:**
|
|
892
|
+
|
|
867
893
|
- Missing glossary terms on data products (High)
|
|
868
894
|
- Data products without OKRs (Medium)
|
|
869
895
|
- Missing data quality scores (Medium)
|
|
@@ -871,7 +897,7 @@ pvw uc health query --json
|
|
|
871
897
|
- Description quality issues (Medium)
|
|
872
898
|
- Business domains without critical data entities (Medium)
|
|
873
899
|
|
|
874
|
-
####
|
|
900
|
+
#### **Workflow Management (NEW)**
|
|
875
901
|
|
|
876
902
|
Manage approval workflows and business process automation in Purview.
|
|
877
903
|
|
|
@@ -905,12 +931,13 @@ pvw workflow list --json
|
|
|
905
931
|
```
|
|
906
932
|
|
|
907
933
|
**Workflow Use Cases:**
|
|
934
|
+
|
|
908
935
|
- Data access request approvals
|
|
909
936
|
- Glossary term certification workflows
|
|
910
937
|
- Data product publishing approvals
|
|
911
938
|
- Classification review processes
|
|
912
939
|
|
|
913
|
-
####
|
|
940
|
+
#### **Integrated Workflow Example**
|
|
914
941
|
|
|
915
942
|
```bash
|
|
916
943
|
# 1. Discover assets to govern
|
|
@@ -935,7 +962,7 @@ pvw uc objective create --definition "Ensure 100% PII classification compliance"
|
|
|
935
962
|
|
|
936
963
|
PVW CLI provides comprehensive entity management capabilities for updating Purview assets like descriptions, classifications, and custom attributes.
|
|
937
964
|
|
|
938
|
-
###
|
|
965
|
+
### **Entity Update Examples**
|
|
939
966
|
|
|
940
967
|
#### **Update Asset Descriptions**
|
|
941
968
|
|
|
@@ -982,7 +1009,7 @@ pvw entity add-classification \
|
|
|
982
1009
|
--classification "MICROSOFT.PERSONAL.EMAIL"
|
|
983
1010
|
```
|
|
984
1011
|
|
|
985
|
-
###
|
|
1012
|
+
### **Discovery to Update Workflow**
|
|
986
1013
|
|
|
987
1014
|
```bash
|
|
988
1015
|
# 1. Find assets that need updates
|
|
@@ -1003,6 +1030,90 @@ pvw search query --keywords="FOUND_GUID" --detailed
|
|
|
1003
1030
|
|
|
1004
1031
|
---
|
|
1005
1032
|
|
|
1033
|
+
## Lineage CSV Import & Management
|
|
1034
|
+
|
|
1035
|
+
PVW CLI provides powerful lineage management capabilities including CSV-based bulk import for automating data lineage creation.
|
|
1036
|
+
|
|
1037
|
+
### **Lineage CSV Import**
|
|
1038
|
+
|
|
1039
|
+
Import lineage relationships from CSV files to automate the creation of data flow documentation in Microsoft Purview.
|
|
1040
|
+
|
|
1041
|
+
#### **CSV Format**
|
|
1042
|
+
|
|
1043
|
+
The CSV file must contain the following columns:
|
|
1044
|
+
|
|
1045
|
+
**Required columns:**
|
|
1046
|
+
|
|
1047
|
+
- `source_entity_guid` - GUID of the source entity
|
|
1048
|
+
- `target_entity_guid` - GUID of the target entity
|
|
1049
|
+
|
|
1050
|
+
**Optional columns:**
|
|
1051
|
+
|
|
1052
|
+
- `relationship_type` - Type of relationship (default: "Process")
|
|
1053
|
+
- `process_name` - Name of the transformation process
|
|
1054
|
+
- `description` - Description of the transformation
|
|
1055
|
+
- `confidence_score` - Confidence score (0-1)
|
|
1056
|
+
- `owner` - Process owner
|
|
1057
|
+
- `metadata` - Additional JSON metadata
|
|
1058
|
+
|
|
1059
|
+
**Example CSV:**
|
|
1060
|
+
|
|
1061
|
+
```csv
|
|
1062
|
+
source_entity_guid,target_entity_guid,relationship_type,process_name,description,confidence_score,owner,metadata
|
|
1063
|
+
dcfc99ed-c74d-49aa-bd0b-72f6f6f60000,1db9c650-acfb-4914-8bc5-1cf6f6f60000,Process,Transform_Product_Data,Transform product data for analytics,0.95,data-engineering,"{""tool"": ""Azure Data Factory""}"
|
|
1064
|
+
```
|
|
1065
|
+
|
|
1066
|
+
#### **Lineage Commands**
|
|
1067
|
+
|
|
1068
|
+
```bash
|
|
1069
|
+
# Validate CSV format before import (no API calls)
|
|
1070
|
+
pvw lineage validate lineage_data.csv
|
|
1071
|
+
|
|
1072
|
+
# Import lineage relationships from CSV
|
|
1073
|
+
pvw lineage import lineage_data.csv
|
|
1074
|
+
|
|
1075
|
+
# Generate sample CSV file with examples
|
|
1076
|
+
pvw lineage sample output.csv --num-samples 10 --template detailed
|
|
1077
|
+
|
|
1078
|
+
# View available CSV templates
|
|
1079
|
+
pvw lineage templates
|
|
1080
|
+
```
|
|
1081
|
+
|
|
1082
|
+
#### **Available Templates**
|
|
1083
|
+
|
|
1084
|
+
- **`basic`** - Minimal columns (source, target, process name)
|
|
1085
|
+
- **`detailed`** - All columns including metadata and confidence scores
|
|
1086
|
+
- **`qualified_names`** - Use qualified names instead of GUIDs
|
|
1087
|
+
|
|
1088
|
+
#### **Workflow Example**
|
|
1089
|
+
|
|
1090
|
+
```bash
|
|
1091
|
+
# 1. Find entity GUIDs using search
|
|
1092
|
+
pvw search find-table --name "Product" --schema "dbo" --id-only
|
|
1093
|
+
|
|
1094
|
+
# 2. Create CSV file with lineage relationships
|
|
1095
|
+
# (use the GUIDs from step 1)
|
|
1096
|
+
|
|
1097
|
+
# 3. Validate CSV format
|
|
1098
|
+
pvw lineage validate my_lineage.csv
|
|
1099
|
+
# Output: SUCCESS: Lineage validation passed (5 rows, 8 columns)
|
|
1100
|
+
|
|
1101
|
+
# 4. Import to Purview
|
|
1102
|
+
pvw lineage import my_lineage.csv
|
|
1103
|
+
# Output: SUCCESS: Lineage import completed successfully
|
|
1104
|
+
```
|
|
1105
|
+
|
|
1106
|
+
#### **Advanced Features**
|
|
1107
|
+
|
|
1108
|
+
- **GUID Validation**: Automatic validation of GUID format with helpful error messages
|
|
1109
|
+
- **Process Entity Creation**: Creates intermediate "Process" entities to link source→target relationships
|
|
1110
|
+
- **Metadata Support**: Add custom JSON metadata to each lineage relationship
|
|
1111
|
+
- **Dry-Run Validation**: Validate CSV format locally before making API calls
|
|
1112
|
+
|
|
1113
|
+
**For detailed documentation, see:** [`doc/guides/lineage-csv-import.md`](doc/guides/lineage-csv-import.md)
|
|
1114
|
+
|
|
1115
|
+
---
|
|
1116
|
+
|
|
1006
1117
|
## Data Product Management (Legacy)
|
|
1007
1118
|
|
|
1008
1119
|
PVW CLI also includes the original `data-product` command group for backward compatibility with traditional data product lifecycle management.
|
|
@@ -1032,15 +1143,18 @@ pvw data-product show-lineage --qualified-name="product.test.1"
|
|
|
1032
1143
|
## Core Features
|
|
1033
1144
|
|
|
1034
1145
|
- **Unified Catalog (UC)**: Complete modern data governance (NEW)
|
|
1146
|
+
|
|
1035
1147
|
```bash
|
|
1036
1148
|
# Manage governance domains, terms, data products, OKRs, CDEs
|
|
1037
1149
|
pvw uc domain list
|
|
1038
1150
|
pvw uc term create --name "Customer" --domain-id "abc-123"
|
|
1039
1151
|
pvw uc objective create --definition "Improve quality" --domain-id "abc-123"
|
|
1040
1152
|
```
|
|
1153
|
+
|
|
1041
1154
|
- **Discovery Query/Search**: Flexible, advanced search for all catalog assets
|
|
1042
1155
|
- **Entity Management**: Bulk import/export, update, and validation
|
|
1043
1156
|
- **Glossary Management**: Import/export terms, assign terms in bulk
|
|
1157
|
+
|
|
1044
1158
|
```bash
|
|
1045
1159
|
# List all terms in a glossary
|
|
1046
1160
|
pvw glossary list-terms --glossary-guid "your-glossary-guid"
|
|
@@ -1048,7 +1162,20 @@ pvw data-product show-lineage --qualified-name="product.test.1"
|
|
|
1048
1162
|
# Create and manage glossary terms
|
|
1049
1163
|
pvw glossary create-term --payload-file term.json
|
|
1050
1164
|
```
|
|
1051
|
-
|
|
1165
|
+
|
|
1166
|
+
- **Lineage Operations**: Lineage discovery, CSV-based bulk lineage import/export
|
|
1167
|
+
|
|
1168
|
+
```bash
|
|
1169
|
+
# Import lineage relationships from CSV
|
|
1170
|
+
pvw lineage import lineage_data.csv
|
|
1171
|
+
|
|
1172
|
+
# Validate CSV format before import
|
|
1173
|
+
pvw lineage validate lineage_data.csv
|
|
1174
|
+
|
|
1175
|
+
# Generate sample CSV file
|
|
1176
|
+
pvw lineage sample output.csv --num-samples 10
|
|
1177
|
+
```
|
|
1178
|
+
|
|
1052
1179
|
- **Monitoring & Analytics**: Real-time dashboards, metrics, and reporting
|
|
1053
1180
|
- **Plugin System**: Extensible with custom plugins
|
|
1054
1181
|
|
|
@@ -1060,14 +1187,14 @@ PVW CLI provides comprehensive automation for all major Microsoft Purview APIs,
|
|
|
1060
1187
|
|
|
1061
1188
|
### Supported API Groups
|
|
1062
1189
|
|
|
1063
|
-
- **Unified Catalog**: Complete governance domains, glossary terms, data products, OKRs, CDEs management
|
|
1064
|
-
- **Health Monitoring**: Automated governance health checks and recommendations
|
|
1065
|
-
- **Workflows**: Approval workflows and business process automation
|
|
1066
|
-
- **Data Map**: Full entity and lineage management
|
|
1067
|
-
- **Discovery**: Advanced search, browse, and query capabilities
|
|
1068
|
-
- **Collections**: Collection and account management
|
|
1069
|
-
- **Management**: Administrative operations
|
|
1070
|
-
- **Scan**: Data source scanning and configuration
|
|
1190
|
+
- **Unified Catalog**: Complete governance domains, glossary terms, data products, OKRs, CDEs management [OK]
|
|
1191
|
+
- **Health Monitoring**: Automated governance health checks and recommendations [OK] NEW
|
|
1192
|
+
- **Workflows**: Approval workflows and business process automation [OK] NEW
|
|
1193
|
+
- **Data Map**: Full entity and lineage management [OK]
|
|
1194
|
+
- **Discovery**: Advanced search, browse, and query capabilities [OK]
|
|
1195
|
+
- **Collections**: Collection and account management [OK]
|
|
1196
|
+
- **Management**: Administrative operations [OK]
|
|
1197
|
+
- **Scan**: Data source scanning and configuration [OK]
|
|
1071
1198
|
|
|
1072
1199
|
### API Version Support
|
|
1073
1200
|
|
|
@@ -1079,6 +1206,7 @@ PVW CLI provides comprehensive automation for all major Microsoft Purview APIs,
|
|
|
1079
1206
|
- Scan: **2018-12-01-preview**
|
|
1080
1207
|
|
|
1081
1208
|
For the latest API documentation and updates, see:
|
|
1209
|
+
|
|
1082
1210
|
- [Microsoft Purview REST API reference](https://learn.microsoft.com/en-us/rest/api/purview/)
|
|
1083
1211
|
- [Atlas 2.2 API documentation](https://learn.microsoft.com/en-us/purview/data-gov-api-atlas-2-2)
|
|
1084
1212
|
- [Azure Updates](https://azure.microsoft.com/updates/) for new releases
|
|
@@ -1094,9 +1222,18 @@ PVW CLI includes comprehensive sample files and scripts for bulk operations:
|
|
|
1094
1222
|
### Bulk Import Samples
|
|
1095
1223
|
|
|
1096
1224
|
- **CSV Samples:** `samples/csv/uc_terms_bulk_example.csv` (8 sample terms)
|
|
1097
|
-
- **JSON Samples:**
|
|
1225
|
+
- **JSON Samples:**
|
|
1098
1226
|
- `samples/json/term/uc_terms_bulk_example.json` (8 data management terms)
|
|
1099
1227
|
- `samples/json/term/uc_terms_sample.json` (8 business terms)
|
|
1228
|
+
- **Lineage CSV Samples:** `samples/csv/lineage_example.csv` - Multiple lineage relationships with metadata
|
|
1229
|
+
|
|
1230
|
+
### Lineage Documentation
|
|
1231
|
+
|
|
1232
|
+
- **Comprehensive Guide:** `doc/guides/lineage-csv-import.md` - Complete lineage CSV import documentation
|
|
1233
|
+
- CSV format specification with required/optional columns
|
|
1234
|
+
- Command examples for validate, import, sample, templates
|
|
1235
|
+
- Workflow recommendations and troubleshooting
|
|
1236
|
+
- Advanced scenarios with metadata and multiple transformations
|
|
1100
1237
|
|
|
1101
1238
|
### Bulk Delete Scripts
|
|
1102
1239
|
|
|
@@ -1137,27 +1274,31 @@ PVW CLI includes comprehensive sample files and scripts for bulk operations:
|
|
|
1137
1274
|
|
|
1138
1275
|
## Recent Updates (October 2025)
|
|
1139
1276
|
|
|
1140
|
-
###
|
|
1277
|
+
### Bulk Term Import/Export
|
|
1278
|
+
|
|
1141
1279
|
- Import multiple terms from CSV or JSON files
|
|
1142
1280
|
- Dry-run mode for validation before import
|
|
1143
1281
|
- Support for owners (Entra ID GUIDs), acronyms, resources
|
|
1144
1282
|
- Progress tracking and detailed error reporting
|
|
1145
1283
|
- 100% success rate in testing (8/8 terms)
|
|
1146
1284
|
|
|
1147
|
-
###
|
|
1285
|
+
### PowerShell & Scripting Integration
|
|
1286
|
+
|
|
1148
1287
|
- New `--output` parameter with table/json/jsonc formats
|
|
1149
1288
|
- Plain JSON works with PowerShell's `ConvertFrom-Json`
|
|
1150
1289
|
- Compatible with jq, Python json module, and other tools
|
|
1151
1290
|
- Migration from deprecated `--json` flag
|
|
1152
1291
|
|
|
1153
|
-
###
|
|
1292
|
+
### Bulk Delete Scripts
|
|
1293
|
+
|
|
1154
1294
|
- PowerShell script with interactive confirmation ("DELETE" to confirm)
|
|
1155
1295
|
- Python script with Rich progress bars
|
|
1156
1296
|
- Beautiful UI with colored output
|
|
1157
1297
|
- Success/failure tracking per term
|
|
1158
1298
|
- Rate limiting (200ms delay)
|
|
1159
1299
|
|
|
1160
|
-
###
|
|
1300
|
+
### Critical Fixes (v1.2.4)
|
|
1301
|
+
|
|
1161
1302
|
- **Search API Suggest/Autocomplete:** Fixed HTTP 400 errors by removing empty filter objects from payload
|
|
1162
1303
|
- **Collection Display:** Enhanced collection name detection with proper fallback logic (isinstance checks)
|
|
1163
1304
|
- **Owner ID Format:** Must use Entra ID Object IDs (GUIDs), not email addresses
|
|
@@ -1169,29 +1310,34 @@ PVW CLI includes comprehensive sample files and scripts for bulk operations:
|
|
|
1169
1310
|
|
|
1170
1311
|
## Key Features Summary
|
|
1171
1312
|
|
|
1172
|
-
###
|
|
1313
|
+
### **Unified Catalog (UC) - Complete Management**
|
|
1314
|
+
|
|
1173
1315
|
- Governance domains, glossary terms, data products
|
|
1174
1316
|
- Objectives & Key Results (OKRs), Critical Data Elements (CDEs)
|
|
1175
1317
|
- Health monitoring and workflow automation
|
|
1176
1318
|
- Full CRUD operations with smart partial updates
|
|
1177
1319
|
|
|
1178
|
-
###
|
|
1320
|
+
### **Bulk Operations**
|
|
1321
|
+
|
|
1179
1322
|
- CSV/JSON import with dry-run validation
|
|
1180
1323
|
- PowerShell and Python bulk delete scripts
|
|
1181
1324
|
- Progress tracking and error handling
|
|
1182
1325
|
- Sample files and templates included
|
|
1183
1326
|
|
|
1184
|
-
###
|
|
1327
|
+
### **Multiple Output Formats**
|
|
1328
|
+
|
|
1185
1329
|
- Table format for human viewing (default)
|
|
1186
1330
|
- Plain JSON for PowerShell/bash scripting
|
|
1187
1331
|
- Colored JSON for visual inspection
|
|
1188
1332
|
|
|
1189
|
-
###
|
|
1333
|
+
### **Automation & Integration**
|
|
1334
|
+
|
|
1190
1335
|
- Azure CLI, Service Principal, Managed Identity auth
|
|
1191
1336
|
- Works in local development, CI/CD, and production
|
|
1192
1337
|
- Compatible with PowerShell, bash, Python, jq
|
|
1193
1338
|
|
|
1194
|
-
###
|
|
1339
|
+
### **Comprehensive Documentation**
|
|
1340
|
+
|
|
1195
1341
|
- Complete API coverage documentation
|
|
1196
1342
|
- Jupyter notebook examples
|
|
1197
1343
|
- Troubleshooting guides
|
|
@@ -1214,9 +1360,10 @@ See [LICENSE](LICENSE) file for details.
|
|
|
1214
1360
|
|
|
1215
1361
|
---
|
|
1216
1362
|
|
|
1217
|
-
**PVW CLI v1.2.
|
|
1363
|
+
**PVW CLI v1.2.4 empowers data engineers, stewards, and architects to automate, scale, and enhance their Microsoft Purview experience with powerful command-line and programmatic capabilities.**
|
|
1364
|
+
|
|
1365
|
+
**Latest in v1.2.4:**
|
|
1218
1366
|
|
|
1219
|
-
**Latest in v1.2.3:**
|
|
1220
1367
|
- Fixed Search API suggest/autocomplete (HTTP 400 errors resolved)
|
|
1221
1368
|
- Enhanced collection display with robust fallback logic
|
|
1222
1369
|
- Comprehensive search command validation
|