[
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)