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
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*
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*
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*
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*
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*