Skip to content

feat: Add custom metadata creation/updation/retrieval tool with full property support #43

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

Swastik2000
Copy link

@Swastik2000 Swastik2000 commented May 3, 2025

Key Features:

  1. Creation, updation & Configuration
  • Create custom metadata with descriptions
  • Add multiple property definitions
  • Support for primitive types:
    • USERS, GROUPS
    • STRING, INTEGER
    • DATE, BOOLEAN
    • And more
  • Optional multi-valued properties
  • Property-level descriptions
  1. Logo and Display Options

    • Emoji logo support
    • URL-based logo support
    • Locking capability
  2. Badge Management

  • Create badges with conditions
  • Color-coded status indicators
  • Custom display options
  • Full badge lifecycle management
  1. Comprehensive Error Handling

    • Validation for attribute types
    • Description field validation
    • Proper GUID retrieval from the response
    • Detailed error messages and logging
  2. Example Use Cases:

    • RACI Matrix Definition
    • Data Quality Metrics
    • Custom Classifications
    • Business Metadata

Testing:

  • Create a custom metadata type with no properties | Verify creation succeeds and appears in metadata list with correct name
  • Create a custom metadata type with properties (name, data type) | Verify all properties are created with specified data types
  • Create a custom metadata type with properties having descriptions | Verify properties show descriptions in UI hover/details
  • Update existing property name within custom metadata | Verify property name changes reflect in forms/views
  • Update existing property description within custom metadata | Verify updated descriptions appear in UI elements
  • Update property data type (string→number, etc.) | Verify type conversion handles existing data appropriately
  • Lock custom metadata settings | Verify locked metadata cannot be modified by unauthorized users
  • Remove a property from existing custom metadata | Verify property removal doesn't affect other properties/data
  • Create different badge types (status, priority, etc.) | Verify badges display with correct styling/colors
  • Delete an existing badge | Verify badge removal doesn't affect associated metadata/assets

Documentation:

  • Added detailed docstrings with examples

Screenshot:

image

@Swastik2000 Swastik2000 requested review from Hk669 and firecast as code owners May 3, 2025 21:24
@Swastik2000
Copy link
Author

@Hk669 @firecast
Could you please review once?

@swastikmishra-atlan
Copy link

@Hk669 @firecast
Could you please review once updated with more enhancements?

@swastikmishra-atlan swastikmishra-atlan changed the title feat: Add custom metadata creation tool with full property support feat: Add custom metadata creation/updation/retrieval tool with full property support May 6, 2025
Copy link
Collaborator

@Hk669 Hk669 left a comment

Choose a reason for hiding this comment

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

can you please create an issue for this?, and post it in the mcp channel so everyone is aware of this.

Comment on lines +391 to +395
attributes: List[Dict[str, Any]],
description: Optional[str] = None,
emoji: Optional[str] = None,
logo_url: Optional[str] = None,
locked: bool = False,
Copy link
Collaborator

Choose a reason for hiding this comment

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

can you remove the type definitions in the tools at the server level? it fails with the cursor. we can have it at the tools level.

Comment on lines +517 to +520
add_attributes: Optional[List[Dict[str, Any]]] = None,
modify_attributes: Optional[Dict[str, Dict[str, Any]]] = None,
remove_attributes: Optional[List[str]] = None,
archived_by: Optional[str] = None,
Copy link
Collaborator

Choose a reason for hiding this comment

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

here as well.

Comment on lines +585 to +589
display_name: Optional[str] = None,
description: Optional[str] = None,
emoji: Optional[str] = None,
logo_url: Optional[str] = None,
badge_conditions: Optional[List[Dict[str, Any]]] = None,
Copy link
Collaborator

Choose a reason for hiding this comment

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

same here

Comment on lines +659 to +662
display_name: Optional[str] = None,
description: Optional[str] = None,
emoji: Optional[str] = None,
logo_url: Optional[str] = None,
Copy link
Collaborator

Choose a reason for hiding this comment

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

same here

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