mirror of
https://github.com/danswer-ai/danswer.git
synced 2025-09-25 19:37:29 +02:00
Enable ephemeral message responses by Onyx Slack Bots (#4142)
A new setting 'is_ephemeral' has been added to the Slack channel configurations. Key features/effects: - if is_ephemeral is set for standard channel (and a Search Assistant is chosen): - the answer is only shown to user as an ephemeral message - the user has access to his private documents for a search (as the answer is only shown to them) - the user has the ability to share the answer with the channel or keep private - a recipient list cannot be defined if the channel is set up as ephemeral - if is_ephemeral is set and DM with bot: - the user has access to private docs in searches - the message is not sent as ephemeral, as it is a 1:1 discussion with bot - if is_ephemeral is not set but recipient list is set: - the user search does *not* have access to their private documents as the information goes to the recipient list team members, and they may have different access rights - Overall: - Unless the channel is set to is_ephemeral or it is a direct conversation with the Bot, only public docs are accessible - The ACL is never bypassed, also not in cases where the admin explicitly attached a document set to the bot config.
This commit is contained in:
@@ -83,6 +83,8 @@ export const SlackChannelConfigCreationForm = ({
|
||||
respond_tag_only:
|
||||
existingSlackChannelConfig?.channel_config?.respond_tag_only ||
|
||||
false,
|
||||
is_ephemeral:
|
||||
existingSlackChannelConfig?.channel_config?.is_ephemeral || false,
|
||||
respond_to_bots:
|
||||
existingSlackChannelConfig?.channel_config?.respond_to_bots ||
|
||||
false,
|
||||
@@ -135,6 +137,7 @@ export const SlackChannelConfigCreationForm = ({
|
||||
questionmark_prefilter_enabled: Yup.boolean().required(),
|
||||
respond_tag_only: Yup.boolean().required(),
|
||||
respond_to_bots: Yup.boolean().required(),
|
||||
is_ephemeral: Yup.boolean().required(),
|
||||
show_continue_in_web_ui: Yup.boolean().required(),
|
||||
enable_auto_filters: Yup.boolean().required(),
|
||||
respond_member_group_list: Yup.array().of(Yup.string()).required(),
|
||||
|
@@ -597,6 +597,13 @@ export function SlackChannelConfigFormFields({
|
||||
label="Respond to Bot messages"
|
||||
tooltip="If not set, OnyxBot will always ignore messages from Bots"
|
||||
/>
|
||||
<CheckFormField
|
||||
name="is_ephemeral"
|
||||
label="Respond to user in a private (ephemeral) message"
|
||||
tooltip="If set, OnyxBot will respond only to the user in a private (ephemeral) message. If you also
|
||||
chose 'Search' Assistant above, selecting this option will make documents that are private to the user
|
||||
available for their queries."
|
||||
/>
|
||||
|
||||
<TextArrayField
|
||||
name="respond_member_group_list"
|
||||
@@ -635,11 +642,14 @@ export function SlackChannelConfigFormFields({
|
||||
Privacy Alert
|
||||
</Label>
|
||||
<p className="text-sm text-text-darker mb-4">
|
||||
Please note that at least one of the documents accessible by
|
||||
your OnyxBot is marked as private and may contain sensitive
|
||||
information. These documents will be accessible to all users
|
||||
of this OnyxBot. Ensure this aligns with your intended
|
||||
document sharing policy.
|
||||
Please note that if the private (ephemeral) response is *not
|
||||
selected*, only public documents within the selected document
|
||||
sets will be accessible for user queries. If the private
|
||||
(ephemeral) response *is selected*, user quries can also
|
||||
leverage documents that the user has already been granted
|
||||
access to. Note that users will be able to share the response
|
||||
with others in the channel, so please ensure that this is
|
||||
aligned with your company sharing policies.
|
||||
</p>
|
||||
<div className="space-y-2">
|
||||
<h4 className="text-sm text-text font-medium">
|
||||
|
@@ -14,6 +14,7 @@ interface SlackChannelConfigCreationRequest {
|
||||
answer_validity_check_enabled: boolean;
|
||||
questionmark_prefilter_enabled: boolean;
|
||||
respond_tag_only: boolean;
|
||||
is_ephemeral: boolean;
|
||||
respond_to_bots: boolean;
|
||||
show_continue_in_web_ui: boolean;
|
||||
respond_member_group_list: string[];
|
||||
@@ -45,6 +46,7 @@ const buildRequestBodyFromCreationRequest = (
|
||||
channel_name: creationRequest.channel_name,
|
||||
respond_tag_only: creationRequest.respond_tag_only,
|
||||
respond_to_bots: creationRequest.respond_to_bots,
|
||||
is_ephemeral: creationRequest.is_ephemeral,
|
||||
show_continue_in_web_ui: creationRequest.show_continue_in_web_ui,
|
||||
enable_auto_filters: creationRequest.enable_auto_filters,
|
||||
respond_member_group_list: creationRequest.respond_member_group_list,
|
||||
|
@@ -273,6 +273,7 @@ export interface ChannelConfig {
|
||||
channel_name: string;
|
||||
respond_tag_only?: boolean;
|
||||
respond_to_bots?: boolean;
|
||||
is_ephemeral?: boolean;
|
||||
show_continue_in_web_ui?: boolean;
|
||||
respond_member_group_list?: string[];
|
||||
answer_filters?: AnswerFilterOption[];
|
||||
|
Reference in New Issue
Block a user