You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Zsihovszki Krisztina (Jira)" <ji...@apache.org> on 2024/07/16 16:22:00 UTC
[jira] [Assigned] (NIFI-13554) GetSlackReaction processor to fetch reactions for Slack message
[ https://issues.apache.org/jira/browse/NIFI-13554?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Zsihovszki Krisztina reassigned NIFI-13554:
-------------------------------------------
Assignee: Zsihovszki Krisztina
> GetSlackReaction processor to fetch reactions for Slack message
> ---------------------------------------------------------------
>
> Key: NIFI-13554
> URL: https://issues.apache.org/jira/browse/NIFI-13554
> Project: Apache NiFi
> Issue Type: New Feature
> Reporter: Zsihovszki Krisztina
> Assignee: Zsihovszki Krisztina
> Priority: Major
>
> The intention of this processor is to capture reactions for a message which was published to a Slack channel earlier.
> Users of NiFi can use ConsumeSlack or ListenSlack to capture Slack messages. These currently do not include reactions which are at times helpful for a user
> to understand value of a given message.
> ConsumeSlack/ListenSlack's output JSON contains several messages, while reactions are only useful when understood in the context of an individual message.
> Also reactions might occur over a period of time.
> Another possible use case is to fetch reactions for a message which was published by PublishSlack and collect the reactions for the published messages over a given period of time. It helps users getting feedback for individual messages they published in Slack.
> The aim of this Jira to create GetSlackReaction processor which will wait for a user configurable period of time and gather reactions for a message
> or it can optionally release messages as soon as a single reaction is found for it.
> For each reaction found the name will be stored as a flowfile attribute as well the count of that reaction type found.
> The channel id, message timestamp will be set for each outgoing flow file, the flow file content will be the original Slack message text.
> During the waiting period, the flow file is sent to WAIT relationship and it stays here for the configured penalty time period before the processor looks for available reactions again.
> The WAIT relationship must be looped back to the processor by the flow designer.
> In case no reaction is found for a message in the configured time period, the flow file goes to NO_REACTION relationship.
> GetSlackReaction identifies a message by the id of the channel the message was published to and the message Slack timestamp.
> The GetSlackReaction processor would require an upstream processor (ConsumeSlack, ListenSlack or PublishSlack) to obtain these values from flow file attributes or
> JSON flow file content.
> PublishSlack processor adds the "slack.channel.id" and "slack.ts" attributes to the outgoing flow file and flow file content contains the message text.
> ConsumeSlack, ListenSlack provide JSON output containing several messages. The channel id, message timestamp, message text are included in the JSON content.
> Users can configure GetSlackReaction to look for attributes or JSON path to obtain the values of message timestamp and channel id.
> The 'Attributes' mode should be used if PublishSlack precedes GetSlackReaction, the 'JSON path' mode should be used if ConsumeSlack or ListenSlack precedes the GetSlackReaction processor.
> In case of ConsumeSlack/ListenSlack processor precedes GetSlackReaction ('JSON path' mode), the user has to configure JSON path for channel id,
> message timestamp and message text. The default values of these properties are set to the path used in ConsumeSlack/ListenSlack output.
> GetSlackReaction processor will split the incoming JSON array content to separate JSONs including only one Slack message and will create a separate flow file for each message.
> The original flow file will go to ORIGINAL relationship.
> The slack.channel.id, slack.ts attributes will be set for each outgoing flow file, the flow file content will be the message text (extracted from the JSON using the provided message text JSON path).
> In case of PublishSlack processor precedes GetSlackReaction, the slack.channel.id and slack.ts attributes are already set, the flow file content is the published Slack message's text.
> The flow file will be cloned, it will keep the attributes, content, the original flow file will be sent to Original relationship (to be in synch with the ConsumeSlack/ListenSlack case).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)