Repository navigation
feat: add the user_connections feature to the app manifest types - #2775
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2775 +/- ##
==========================================
+ Coverage 89.34% 89.41% +0.06%
==========================================
Files 65 65
Lines 10548 10548
Branches 480 480
==========================================
+ Hits 9424 9431 +7
+ Misses 1091 1085 -6
+ Partials 33 32 -1
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
Use the house style for manifest descriptions and the public feature name, standardized app authentication, with a link to its docs page. Drop the host count limit so the comment can't drift from what Slack validates. Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
🦋 Changeset detectedLatest commit: f5463ea The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
WilliamBergamin
marked this pull request as ready for review
October 22, 2026 21:40
3 of 5 tasks
zimeg
approved these changes
Oct 22, 2026
zimeg
left a comment
Member
There was a problem hiding this comment.
@WilliamBergamin LGTM for latest changes when the time is right or even before! 🚀 :crystal
1 of 6 tasks
…ypes Slack now requires an app with features.user_connections enabled to subscribe to user_connection and user_connection_status_requested, but ManifestEvent listed neither, so a valid manifest failed to type-check. The doc comments note that requirement and that auth_hosts are kept while is_enabled is false. Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
Slack's manifest validation enforces the user_connection and user_connection_status_requested subscriptions and the interactivity or Socket Mode requirement, so restating them in the comment could drift. Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This pull request adds the
features.user_connectionsapp manifest property (is_enabled,auth_hosts) to the manifest types, matching slackapi/slack-cli#688, so apps that opt into the standardized user connection flow can pass it toapps.manifest.create,updateandvalidatewithout a type error.It also adds the
user_connectionanduser_connection_status_requestedevents to the manifest event types. Slack requires an app withuser_connectionsenabled to subscribe to both, so without them a valid manifest didn't type-check.Both
user_connectionsfields are required, like Slack's manifest API, which rejects auser_connectionsobject missing either one.auth_hostsstays required whileis_enabledis false, since Slack keeps the hosts then. Host format and item limits are validated by Slack.Testing
tsdcases in theapps.manifest.createsection oftest/types/methods/apps.test-d.ts: missingis_enabledorauth_hostsis an error; enabled (subscribed to both events, with Socket Mode) and disabled with hosts are assignable. (npm run test:types --workspace=packages/web-api; the only failures are the existingfiles.uploadandrtm.startcases, also failing onmain.)npm run lintandnpm test --workspace=packages/web-apipass.apps.manifest.createwithuser_connectionsenabled, both events subscribed, and Socket Mode on succeeds;apps.manifest.exportreturnsis_enabled: truewith the hosts.apps.manifest.updatewithis_enabled: falsesucceeds; the export returnsis_enabled: falsewith the hosts kept.apps.manifest.validatewithoutuser_connectioninbot_eventsfails withuser_connections_requires_user_connection_subscription.Requirements
🤖 Generated with Claude Code