dq-made-easy-cli 0.6.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.
- dq_made_easy_cli-0.6.3/PKG-INFO +92 -0
- dq_made_easy_cli-0.6.3/README.md +83 -0
- dq_made_easy_cli-0.6.3/dq_cli/__init__.py +16 -0
- dq_made_easy_cli-0.6.3/dq_cli/mcp_server.py +746 -0
- dq_made_easy_cli-0.6.3/dq_cli/onboard.py +399 -0
- dq_made_easy_cli-0.6.3/dq_cli/run_plan.py +935 -0
- dq_made_easy_cli-0.6.3/dq_made_easy_cli.egg-info/PKG-INFO +92 -0
- dq_made_easy_cli-0.6.3/dq_made_easy_cli.egg-info/SOURCES.txt +17 -0
- dq_made_easy_cli-0.6.3/dq_made_easy_cli.egg-info/dependency_links.txt +1 -0
- dq_made_easy_cli-0.6.3/dq_made_easy_cli.egg-info/entry_points.txt +4 -0
- dq_made_easy_cli-0.6.3/dq_made_easy_cli.egg-info/requires.txt +2 -0
- dq_made_easy_cli-0.6.3/dq_made_easy_cli.egg-info/top_level.txt +1 -0
- dq_made_easy_cli-0.6.3/pyproject.toml +23 -0
- dq_made_easy_cli-0.6.3/setup.cfg +4 -0
- dq_made_easy_cli-0.6.3/tests/test_mcp_server_integration.py +143 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dq-made-easy-cli
|
|
3
|
+
Version: 0.6.3
|
|
4
|
+
Summary: Standalone CLI for listing, initiating, and replaying DQ run plans
|
|
5
|
+
Requires-Python: >=3.11
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
Requires-Dist: httpx==0.28.1
|
|
8
|
+
Requires-Dist: PyYAML>=6.0.2
|
|
9
|
+
|
|
10
|
+
# dq-made-easy-cli
|
|
11
|
+
|
|
12
|
+
Standalone CLI package for **rule onboarding**, **run plan management**, and **execution tracking** in dq-made-easy.
|
|
13
|
+
|
|
14
|
+
## Commands
|
|
15
|
+
|
|
16
|
+
### `dq-onboard` — Workspace Rule Onboarding
|
|
17
|
+
|
|
18
|
+
Discover, filter, and bulk-submit rule onboarding proposals based on template matching.
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
dq-onboard --workspace "Retail Banking" --all --insecure --submit
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
✅ **Features**:
|
|
25
|
+
- Fetch workspace scope summary (attribute counts)
|
|
26
|
+
- Generate template-based rule proposals
|
|
27
|
+
- Filter by template type or select all
|
|
28
|
+
- Preview with `--dry-run` or submit with `--submit`
|
|
29
|
+
- JSON output for automation
|
|
30
|
+
|
|
31
|
+
📖 **Full Documentation**: [ONBOARDING.md](ONBOARDING.md)
|
|
32
|
+
|
|
33
|
+
**Verified Examples** (Retail Banking workspace: 157 attributes, 356 proposals):
|
|
34
|
+
- View single sample proposal: `dq-onboard --workspace "Retail Banking" --dry-run`
|
|
35
|
+
- Filter to NULL checks (157): `dq-onboard --workspace "Retail Banking" --template "NULL Value" --all --dry-run`
|
|
36
|
+
- Submit all proposals: `dq-onboard --workspace "Retail Banking" --all --submit`
|
|
37
|
+
- JSON output: `dq-onboard --workspace "Retail Banking" --json --dry-run | jq .`
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
### `dq-run-plan` — Execution & Replay
|
|
42
|
+
|
|
43
|
+
List, initiate, replay, and export run plans (existing command).
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
dq-run-plan --help
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
### `dq-mcp-server` — Agent Tools via MCP
|
|
52
|
+
|
|
53
|
+
Runs a stdio MCP server that exposes three tools backed by canonical dq-api routes:
|
|
54
|
+
|
|
55
|
+
- `validate_dataset` -> `POST /api/rulebuilder/v1/rules/validate/batch`
|
|
56
|
+
- `get_anomalies` -> `GET /api/rulebuilder/v1/deliveries/{delivery_id}/exception-summary`
|
|
57
|
+
- `trigger_remediation` -> `POST /api/rulebuilder/v1/incidents`
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
dq-mcp-server --base-url http://localhost:8000/api --token "$DQ_MCP_API_TOKEN"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Environment variables:
|
|
64
|
+
|
|
65
|
+
- `DQ_MCP_API_BASE_URL` (required unless `--base-url` is provided)
|
|
66
|
+
- `DQ_MCP_API_TOKEN` (optional bearer token)
|
|
67
|
+
- `DQ_MCP_API_TIMEOUT_SECONDS` (required unless `--timeout-seconds` is provided)
|
|
68
|
+
|
|
69
|
+
The server fails fast if base URL or timeout are missing.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Installation
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
pip install dq-made-easy-cli
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Or from source:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
cd dq-cli
|
|
83
|
+
pip install -e .
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Verify both commands are available:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
dq-onboard --help
|
|
90
|
+
dq-run-plan --help
|
|
91
|
+
dq-mcp-server --help
|
|
92
|
+
```
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# dq-made-easy-cli
|
|
2
|
+
|
|
3
|
+
Standalone CLI package for **rule onboarding**, **run plan management**, and **execution tracking** in dq-made-easy.
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
### `dq-onboard` — Workspace Rule Onboarding
|
|
8
|
+
|
|
9
|
+
Discover, filter, and bulk-submit rule onboarding proposals based on template matching.
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
dq-onboard --workspace "Retail Banking" --all --insecure --submit
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
✅ **Features**:
|
|
16
|
+
- Fetch workspace scope summary (attribute counts)
|
|
17
|
+
- Generate template-based rule proposals
|
|
18
|
+
- Filter by template type or select all
|
|
19
|
+
- Preview with `--dry-run` or submit with `--submit`
|
|
20
|
+
- JSON output for automation
|
|
21
|
+
|
|
22
|
+
📖 **Full Documentation**: [ONBOARDING.md](ONBOARDING.md)
|
|
23
|
+
|
|
24
|
+
**Verified Examples** (Retail Banking workspace: 157 attributes, 356 proposals):
|
|
25
|
+
- View single sample proposal: `dq-onboard --workspace "Retail Banking" --dry-run`
|
|
26
|
+
- Filter to NULL checks (157): `dq-onboard --workspace "Retail Banking" --template "NULL Value" --all --dry-run`
|
|
27
|
+
- Submit all proposals: `dq-onboard --workspace "Retail Banking" --all --submit`
|
|
28
|
+
- JSON output: `dq-onboard --workspace "Retail Banking" --json --dry-run | jq .`
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
### `dq-run-plan` — Execution & Replay
|
|
33
|
+
|
|
34
|
+
List, initiate, replay, and export run plans (existing command).
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
dq-run-plan --help
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
### `dq-mcp-server` — Agent Tools via MCP
|
|
43
|
+
|
|
44
|
+
Runs a stdio MCP server that exposes three tools backed by canonical dq-api routes:
|
|
45
|
+
|
|
46
|
+
- `validate_dataset` -> `POST /api/rulebuilder/v1/rules/validate/batch`
|
|
47
|
+
- `get_anomalies` -> `GET /api/rulebuilder/v1/deliveries/{delivery_id}/exception-summary`
|
|
48
|
+
- `trigger_remediation` -> `POST /api/rulebuilder/v1/incidents`
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
dq-mcp-server --base-url http://localhost:8000/api --token "$DQ_MCP_API_TOKEN"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Environment variables:
|
|
55
|
+
|
|
56
|
+
- `DQ_MCP_API_BASE_URL` (required unless `--base-url` is provided)
|
|
57
|
+
- `DQ_MCP_API_TOKEN` (optional bearer token)
|
|
58
|
+
- `DQ_MCP_API_TIMEOUT_SECONDS` (required unless `--timeout-seconds` is provided)
|
|
59
|
+
|
|
60
|
+
The server fails fast if base URL or timeout are missing.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Installation
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
pip install dq-made-easy-cli
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Or from source:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
cd dq-cli
|
|
74
|
+
pip install -e .
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Verify both commands are available:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
dq-onboard --help
|
|
81
|
+
dq-run-plan --help
|
|
82
|
+
dq-mcp-server --help
|
|
83
|
+
```
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
__all__ = ["main"]
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
from .run_plan import main as main
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def __getattr__(name: str):
|
|
12
|
+
if name == "main":
|
|
13
|
+
from .run_plan import main as run_plan_main
|
|
14
|
+
|
|
15
|
+
return run_plan_main
|
|
16
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|