metadata_handler

Metadata will be an important component for allowing TriggerKit to make and react to interactive messages.

We need to allow users to: - encode metadata in their messages - retrieve metadata from user interactions in the Snowflake Table

The means tk_slakc needs to: - Encode the specified metadata into the message - Retrieve the metadata from messages - Send the metadata with the user interaction to Snowflake


source

MessageMetadataHandler

 MessageMetadataHandler ()

*Handles the creation and attachment of metadata to Slack messages.

This class implements Slack’s message metadata feature which allows attaching invisible structured data to messages for event-driven processing.

Reference: https://api.slack.com/metadata*


source

MessageMetadataHandler.create_metadata

 MessageMetadataHandler.create_metadata (event_type:str,
                                         view_info:Optional[Dict[str,Any]]
                                         =None, response_config:Optional[D
                                         ict[str,Any]]=None, custom_data:O
                                         ptional[Dict[str,Any]]=None)

*Create structured metadata for a Slack message.

Args: event_type: Type of event (e.g., ‘lead_alert’, ‘data_notification’) view_info: Optional information about the Snowflake view that generated this message response_config: Optional configuration for how to respond to user actions custom_data: Optional additional custom data to include

Returns: Properly formatted metadata dictionary*


source

MessageMetadataHandler.add_metadata_to_message

 MessageMetadataHandler.add_metadata_to_message (message:Dict[str,Any],
                                                 event_type:str, view_info
                                                 :Optional[Dict[str,Any]]=
                                                 None, response_config:Opt
                                                 ional[Dict[str,Any]]=None
                                                 , custom_data:Optional[Di
                                                 ct[str,Any]]=None)

*Add metadata to a Slack message payload.

Args: message: Slack message payload event_type: Type of event view_info: Optional view information response_config: Optional response configuration custom_data: Optional additional custom data

Returns: Message with metadata attached*


source

MessageMetadataHandler.extract_metadata_from_message

 MessageMetadataHandler.extract_metadata_from_message
                                                       (message:Dict[str,A
                                                       ny])

*Extract metadata from a Slack message.

Args: message: Slack message with metadata

Returns: Extracted metadata or empty dict if none*


source

MessageMetadataHandler.get_event_payload

 MessageMetadataHandler.get_event_payload (message:Dict[str,Any])

*Get the event payload from a message’s metadata.

Args: message: Slack message with metadata

Returns: Event payload or empty dict if none*