Skip to content

feat: support the user_connections manifest feature - #688

Draft
WilliamBergamin wants to merge 1 commit into
mainfrom
manifest-user-connections
Draft

WilliamBergamin wants to merge 1 commit into
mainfrom
manifest-user-connections

Conversation

@WilliamBergamin

Copy link
Copy Markdown
Contributor

Changelog

The features.user_connections app manifest property (is_enabled, auth_hosts) is now supported, so it is kept by run, deploy, and manifest sync.

Summary

The CLI decodes manifest.json (or the get-manifest hook output) into typed manifest structs, so any property it does not model is silently dropped before the manifest is sent to Slack. This adds features.user_connections to AppFeatures so apps that opt into the standardized user connection flow keep that setting.

Both fields are required by the manifest schema, so neither uses omitempty: a disabled feature ("is_enabled": false) keeps its auth_hosts, which is how the feature is meant to be turned off.

Preview

slack manifest info --source local with features.user_connections in manifest.json:

Before (main): the property is stripped

"features": {
  "app_home": {},
  "bot_user": { "display_name": "connector" }
}

After (this branch): the property round-trips

"features": {
  "app_home": {},
  "bot_user": { "display_name": "connector" },
  "user_connections": {
    "is_enabled": true,
    "auth_hosts": ["example.com", "auth.example.com"]
  }
}

Testing

  • New cases in Test_AppManifest_AppFeatures for enabled and explicitly disabled user_connections.
  • New Test_AppManifest_AppFeatures_UserConnections decodes manifest JSON, asserts the typed value, and checks it re-marshals unchanged (undefined, enabled, disabled with hosts).
  • make test passes (lint: 0 issues).
  • Manual: built main and this branch, ran slack manifest info --source local on a sample project with the property (output above).

Notes

  • Follow-up: add user_connections to slackapi/manifest-schema so editors stop flagging it.
  • Host format and item limits are validated by Slack's manifest API, like other manifest properties.

Requirements

🤖 Generated with Claude Code

Add features.user_connections (is_enabled, auth_hosts) to the app
manifest types so the field round-trips through run, deploy, and
manifest sync instead of being dropped when the manifest is decoded.

Both fields are required by the manifest schema, so neither is omitted
when empty: a disabled feature keeps its auth hosts.

Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com>
@codecov

codecov Bot commented Oct 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 78.23%. Comparing base (eae9aad) to head (5cae797).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #688   +/-   ##
=======================================
  Coverage   78.23%   78.23%           
=======================================
  Files         239      239           
  Lines       18149    18149           
=======================================
  Hits        14199    14199           
  Misses       3950     3950           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@WilliamBergamin WilliamBergamin self-assigned this Oct 8, 2026
@WilliamBergamin WilliamBergamin added enhancement M-T: A feature request for new functionality semver:minor Use on pull requests to describe the release version increment labels Oct 8, 2026
@WilliamBergamin WilliamBergamin added this to the Next Release milestone Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement M-T: A feature request for new functionality semver:minor Use on pull requests to describe the release version increment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant