Skip to content

DEV-231585 feat: add get_asset_operating_model tool - #162

Open
tomaszfrojek-collibra wants to merge 1 commit into
mainfrom
feature/DEV-231585-get-asset-operating-model
Open

tomaszfrojek-collibra wants to merge 1 commit into
mainfrom
feature/DEV-231585-get-asset-operating-model

Conversation

@tomaszfrojek-collibra

@tomaszfrojek-collibra tomaszfrojek-collibra commented Nov 6, 2026 •

Copy link
Copy Markdown

Description of your changes

Adds the get_asset_operating_model tool (DEV-231585). It returns the attributes and relations an asset type has in the operating model, so an agent can write a correct first query and has what create_asset needs. It is intended to replace prepare_create_asset, whose output field names it mirrors (status, message, resolved, attributeSchema, relationTypes, availableStatuses).

  • assetType (required) accepts a UUID, publicId or exact name; domain (optional) accepts a UUID or exact name. With a domain, the assignment comes from GET /assignments/assetType/{id}/domain/{id}, so scope and inheritance are resolved server-side instead of by the client-side hierarchy walk in GetScopedAssignment. Without a domain, it uses the unscoped assignment from GET /assignments/assetType/{id}; if only scoped assignments exist, it asks for a domain.
  • Attribute details (stringType, description, allowedValues) and relation roles/legs are always hydrated, best-effort. Statuses are included.
  • get_asset_details and create_asset descriptions now point to the new tool instead of prepare_create_asset.

Out of scope: removing prepare_create_asset (needs alignment with Maestro, AI Services and AI Interfaces), browse/option lists on unresolved input, and sharing the resolver/hydration code with prepare_create_asset (copied, as it is private to that package).

Tests: client tests for both endpoints (mapping, trait inheritance, 404, 500, malformed body, default-assignment selection) and tool tests against a fake Collibra (all identifier forms, ambiguous/unknown input, not-allowed vs. creatable-nowhere, partial hydration, no-domain paths).


Impact Analysis

  • Additive: one new tool and one new client file; no change to existing tool behavior or schemas. Only description text changed in get_asset_details and create_asset.
  • Requires a dgc-core version that has GET /assignments/assetType/{assetTypeId}/domain/{domainId}; on older versions the lookup returns a "Failed to retrieve operating model" message.
  • Not yet verified: that the REST calls only return types the calling user may see (acceptance criterion), and behavior against a live instance. Tests use fake servers only.
  • Follow-up: prepare_create_asset removal and migration path.

Checklist

  • I have performed a self-review of my code
  • My code follows the contribution guidelines of this project
  • My changes generate no new warnings

🤖 Generated with Claude Code

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@tomaszfrojek-collibra
tomaszfrojek-collibra requested a review from a team as a code owner November 6, 2026 07:39

This branch has not been deployed

No deployments
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.

1 participant