Skip to content

feat(govern): add public SDK operations and stdio support - #174

Draft
pportal2 wants to merge 19 commits into
feat/product-api-operationsfrom
feat/govern-tool
Draft

pportal2 wants to merge 19 commits into
feat/product-api-operationsfrom
feat/govern-tool

Conversation

@pportal2

@pportal2 pportal2 commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Continues Pierre Portal's original Govern implementation in this PR and incorporates his original skill commits from #173. All 15 original commits retain their hashes and authorship. The integration commit also includes Pierre's co-author trailer; retain that attribution if squash-merging.

This replaces #195. The validated Govern file tree is unchanged, and #196 now follows this PR.

Add 86 public SDK Govern operations to the shared discovery/execution interface introduced in #194. Govern tasks can inspect and mutate artifacts, blueprints, signoffs, permissions, time series and supporting administration without registering additional MCP tools.

Stacks on #194 (feat/product-api-operations). Merge #179, then #194, before this PR. Rebase and retarget to release/0.9.0 after the parent merges. Agent Management follows separately in #196.

Scope

  • Add the Govern SDK adapter, structural argument schemas, operation declarations and domain guides. Reuse the four existing v2 tools; the catalog now contains 99 actions (13 Deployer + 86 Govern), with 135 MCP tools throughout.
  • Enable Govern v2 policy and connection checks using GovernClient over stdio. Preserve the selected profile's API key/ticket and certificate settings.
  • Reject Govern HTTP execution before backend token exchange. HTTP connection status reports unsupported_authentication without constructing a Govern client; no custom bearer-token implementation or endpoint fallback is added.
  • Upgrade dataiku-api-client to 15.2.0 in project/runtime dependencies and locks for the validated public SDK contract.
  • Keep Agent Management deferred. Design/Automation v1 policy and Deployer behavior remain unchanged.

Validation

  • Locked dependency sync, pre-commit, PEP 723 lock, license-header and Conventional Commit checks
  • uv run pytest: 881 passed on Python 3.14
  • uv build; isolated installed-wheel smoke: 135 tools and 99 operations
  • Catalog/schema validation, Govern SDK routing, transport rejection, destructive intent, response redaction and asynchronous request context tests

No live-instance validation. Full GitHub CI runs after retargeting this stacked draft to a main/release branch.

@pportal2
pportal2 requested a review from pmasiphelps October 1, 2026 17:23
@github-actions

github-actions Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@pmasiphelps
pmasiphelps changed the base branch from main to release/0.8.0 October 6, 2026 14:39
@pmasiphelps
pmasiphelps changed the base branch from release/0.8.0 to release/0.9.0 October 8, 2026 22:42
Build on Pierre Portal's original Govern SDK and skill commits from #174 and
#173, preserving their hashes and authorship. Integrate the existing reviewed
Govern implementation from #195 with #194's four shared operation tools.

Keep the validated Govern file tree unchanged: public SDK methods only,
stdio authentication, typed schemas, policy checks, redaction and guides.

Co-authored-by: Pierre Portal <pierre.portal@dataiku.com>
@pmasiphelps pmasiphelps changed the title feat(govern): one tool implementation of Govern feat(govern): add public SDK operations and stdio support Nov 3, 2026
@pmasiphelps
pmasiphelps changed the base branch from release/0.9.0 to feat/product-api-operations November 3, 2026 15:54
@pportal2

pportal2 commented Nov 3, 2026

Copy link
Copy Markdown
Contributor Author

I have read the CLA Document and I hereby sign the CLA

@yjouini yjouini left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make draft blueprint versions discoverable, list_blueprint_versions uses the regular SDK listing, which excludes DRAFT versions. Please expose a designer listing path while preserving ordinary reader access

yjouini

This comment was marked as duplicate.

@pportal2

pportal2 commented Nov 6, 2026

Copy link
Copy Markdown
Contributor Author

Fixed in 55eef4d. list_blueprint_versions has a new optional include_drafts argument. When it is not set, the operation uses the reader listing as before. With include_drafts: true, it uses the designer listing, which also returns DRAFT versions and needs designer rights.

Also in 1a21fe8: Govern errors now return the server message to the agent instead of one generic text. Before, the agent could not tell a wrong ID from a workflow rule, such as the danger_zone refusal or "sign-off already exists". The message is cut at 1000 characters. A failed write also tells the agent to re-read the object before it retries. This reverses the Deployer pattern for Govern only, because no Govern operation reads or writes secrets.

@pportal2
pportal2 requested a review from yjouini November 6, 2026 14:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants