Mark Payne created NIFI-12331:
---------------------------------

             Summary: Introduce a PublishSlack processor
                 Key: NIFI-12331
                 URL: https://issues.apache.org/jira/browse/NIFI-12331
             Project: Apache NiFi
          Issue Type: New Feature
          Components: Extensions
            Reporter: Mark Payne


The Slack API provides multiple different ways to publish messages to a Slack 
channel. NiFi already has two Processors for pushing to Slack - PostSlack and 
PutSlack. These processors have slightly different nuances, and the 
documentation does not articulate when to which one. One of them is oriented 
more toward sending FlowFile contents as an attachment while the other is 
oriented toward posting a message based on a property value. We should 
consolidate both of these Processors into a single Processor that is capable of 
sending a message and optionally providing the FlowFile content as an 
attachment.

Both PostSlack and PutSlack make use of WebHooks instead of using the official 
Slack SDK. This means that rather than simply specifying the name of the 
Channel to post to, in order to send a message in Slack, the creator of the 
Slack App must explicitly add a Webhook for the desired channel, and the 
Processor must then be configured to use that Webhook. As a result, the channel 
cannot be easily configured and cannot be dynamic. This makes it difficult to 
use in conjunction with ListenSlack / ConsumeSlack in order to respond in 
threads.

We need to consolidate both into a single Processor that is configured and 
behaves differently, based on the SDK.

This Processor should be configured with properties that allow specifying:
 * Bot Token
 * Name of the channel to send to
 * How to obtain the message content (FlowFile Content or specified as a 
Property that accepts Expression Language)
 * If using a Property value, should be configured also with the message to 
send, and whether or not to attach the FlowFile content as an attachment to the 
message.
 * Thread Timestamp (optional to convey which thread the message should be sent 
to) - should support Expression Language



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to