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.
@@ -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}")