afterhours-shift-manager/slack-app-manifest.yaml
seahaven-openswe[bot] 254f6b989f
Some checks failed
Deploy / deploy (push) Has been cancelled
Deploy / release (push) Has been cancelled
[#135] Stick weekly schedule post to bottom of channel (#139)
2026-06-27 15:45:01 -04:00

60 lines
2.1 KiB
YAML

# Slack app manifest — After-Hours Shift Manager
#
# Version-controlled source of truth for the Slack app configuration. The app
# predates this file, so before applying it wholesale via the Slack manifest API,
# reconcile it against the live app config (App settings → App Manifest) so no
# existing scope or setting is dropped.
#
# This release adds the `channels:history` bot scope and the `message.channels`
# bot event so the slack-bot Lambda can keep the two-week schedule post stuck to
# the bottom of the channel: on new activity it deletes and re-posts the tracked
# message (debounced). The new scope + event require a one-time reinstall to take
# effect. Replace <API_URL> with the SlackBotApiUrl stack output.
#
# A prior release added the App Home tab (no new scope):
# - settings.event_subscriptions.bot_events: + app_home_opened
# - features.app_home.home_tab_enabled: true
display_information:
name: After-Hours Shift Manager
description: Manage after-hours on-call phone duty from Slack.
features:
bot_user:
display_name: oncall
always_online: true
slash_commands:
- command: /oncall
url: <API_URL>
description: Manage after-hours on-call shifts
usage_hint: "[next|pick|drop|swap|register|pay|rate|roster|help] …"
should_escape: false
app_home:
home_tab_enabled: true
messages_tab_enabled: true
messages_tab_read_only_enabled: false
oauth_config:
scopes:
bot:
- commands
- chat:write
- im:write
- users:read
# channels:history lets the bot receive message.channels events for the
# schedule channel, which drive the activity bump that keeps the schedule
# post at the bottom of the channel. Requires a one-time reinstall.
- channels:history
settings:
event_subscriptions:
request_url: <API_URL>
bot_events:
- app_home_opened
# message.channels drives the activity bump that keeps the schedule post
# at the bottom of the channel (debounced delete + repost).
- message.channels
interactivity:
is_enabled: true
request_url: <API_URL>
org_deploy_enabled: false
socket_mode_enabled: false