feat(dq): add create_dq_job + prepare_create_dq_job MCP tools#88
feat(dq): add create_dq_job + prepare_create_dq_job MCP tools#88vvaks0 wants to merge 3 commits into
Conversation
| return &chip.Tool[Input, Output]{ | ||
| Name: "prepare_create_dq_job", | ||
| Title: "Prepare to Create Data Quality Job", | ||
| Description: "Read-only companion to create_dq_job. Walks the data-quality wizard's discovery chain — resolve the edge " + |
There was a problem hiding this comment.
@vvaks0 I would be careful with too many Collibra-coded words within this which LLMs might have a challenge understanding. I know this is a companion tool, but it might make sense to explain a bit more what create_dq_job is, as well as be more explicit with words like 'job', 'edge', etc
There was a problem hiding this comment.
@EricWarnerCollibra My one concern is that job might be too generic and could collide with other tools. Would you prefer we unpack dq to data_quality?
There was a problem hiding this comment.
@vvaks0 yes, for sure on the tool name. I also might suggest adding more detail in the description, as an LLM may be viewing this tool independently. Overall, a few examples of user questions per tool, especially ones that are vague, are really helpful for us to understand behavior via evaluations
|
@vvaks0 do we have tests on the DQ side to ensure these API contracts will not change and will fail if someone modifies? |
|
…imental, clarify descriptions Addresses review feedback on #88. - Drop the internal /jobs/name, /jobs/{name}/exists, and /jobs/{name}/validJobName calls. Naming now relies on the PUBLIC create API: omitting jobName lets the server auto-assign a collision-free name (returned in the response); a user-supplied name is validated client-side against the server's rules (charset + no leading hyphen). - Rename the tools to create_data_quality_job / prepare_create_data_quality_job and expand their descriptions with plain-language framing (job/edge/connection) plus example user requests, for better LLM comprehension and evaluations. - Gate both tools behind a new "data-quality" experimental feature (off by default), like the Data Product skills, since they write to Collibra. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
Adds a guided, multi-turn data-quality job creation flow for DEV-197672.
prepare_create_dq_job (read-only) walks the discovery chain — resolve the
edge connection, detect the job type (PUSHDOWN/PULLUP) from its capabilities,
and enumerate data sources, schemas, tables and columns — returning a
ready-to-use plan. It also resolves the location from a catalog Table asset
(id / URL / name) for the table-asset-page entry point.
create_dq_job builds and submits the job via the PUBLIC DQ API
(POST /rest/dq/1.0/jobs) behind a confirm-checkpoint preview. It supports
column selection, a single-column row filter, row sampling, time-slice
scheduling (${rd}/${rdEnd} composed into a dialect-aware source query),
recurring schedules, monitors + adaptive settings, notifications, Pullup
sizing / Parallel JDBC, and Pushdown compute. Discovery uses internal BFF
endpoints (the public DQ API exposes no connection/edge metadata browse).
Validated end-to-end on a live stack: create -> persist -> run FINISHED.
Refs: DEV-197672
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…imental, clarify descriptions Addresses review feedback on #88. - Drop the internal /jobs/name, /jobs/{name}/exists, and /jobs/{name}/validJobName calls. Naming now relies on the PUBLIC create API: omitting jobName lets the server auto-assign a collision-free name (returned in the response); a user-supplied name is validated client-side against the server's rules (charset + no leading hyphen). - Rename the tools to create_data_quality_job / prepare_create_data_quality_job and expand their descriptions with plain-language framing (job/edge/connection) plus example user requests, for better LLM comprehension and evaluations. - Gate both tools behind a new "data-quality" experimental feature (off by default), like the Data Product skills, since they write to Collibra. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
749732a to
deb3c62
Compare
@aberkow Collibra Here is what I am going to propose internally but it will take a bit of time to work through it with the team as there is some team level messaging required here. |
@aberkowCollibra Done |
|
@EricWarnerCollibra @vvaks0 all changes requested have been made and verified. |
selectedColumns projects the chosen columns into the source query's SELECT list (falling back to SELECT * only when omitted), per dqColumnsPart in pkg/clients/dq_source_query.go. The schema description wrongly claimed it left the query as SELECT *. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
🎯 What does this PR do?
Adds a guided, multi-turn data-quality job creation flow for DEV-197672.
prepare_create_dq_job(read-only) walks the discovery chain — resolves the edge connection, detects the job type (PUSHDOWN/PULLUP) from its capabilities, and enumerates data sources, schemas, tables and columns — returning a ready-to-use plan. It also resolves the location from a catalog Table asset (id / URL / name) for the table-asset-page entry point.create_dq_jobbuilds and submits the job via the PUBLIC DQ API (POST /rest/dq/1.0/jobs) behind a confirm-checkpoint preview. Supports column selection, a single-column row filter, row sampling, time-slice scheduling (${rd}/${rdEnd}composed into a dialect-aware source query), recurring schedules, monitors + adaptive settings, notifications, Pullup sizing / Parallel JDBC, and Pushdown compute.Validated end-to-end on a live stack: create -> persist -> run FINISHED.
Refs: DEV-197672
✅ Checklist