Skip to content

Conversation

@vegeris
Copy link
Contributor

@vegeris vegeris commented Oct 21, 2025

Changelog

The app manifest values for entity_types are now gathered when reading an app manifest.

Summary

This PR updates the app manifest model to include work object settings.

Test

  • Before: an app created via the CLI does not include work object settings (review the manifest in App Settings)
  • After: the created app does include work object settings (review the manifest in App Settings)
slack create first-bolt-app --template slack-samples/bolt-js-getting-started-app
cd first-bolt-app
# Add the following to the manifest under `features`:
#  "rich_previews": {
#         "entity_types": [
#               "slack#/entities/file"
#         ]
#   }

slack run

Requirements

@vegeris vegeris force-pushed the evegeris-update-manifest-model-wo branch from e5feb56 to de46401 Compare October 21, 2025 03:20
@codecov
Copy link

codecov bot commented Oct 21, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 62.99%. Comparing base (cdee7f7) to head (c8987e5).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #247      +/-   ##
==========================================
- Coverage   63.02%   62.99%   -0.04%     
==========================================
  Files         212      212              
  Lines       21857    21857              
==========================================
- Hits        13776    13769       -7     
- Misses       7015     7021       +6     
- Partials     1066     1067       +1     

☔ View full report in Codecov by Sentry.
📢 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.

@vegeris vegeris force-pushed the evegeris-update-manifest-model-wo branch from de46401 to af994ce Compare October 21, 2025 13:34
@vegeris vegeris marked this pull request as ready for review October 21, 2025 13:35
@vegeris vegeris requested a review from a team as a code owner October 21, 2025 13:35
@zimeg zimeg added enhancement M-T: A feature request for new functionality changelog Use on updates to be included in the release notes semver:patch Use on pull requests to describe the release version increment labels Oct 21, 2025
@zimeg zimeg added this to the Next Release milestone Oct 21, 2025
Copy link
Member

@zimeg zimeg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vegeris LGTM! I find these values appear in app settings after installing or updating a manifest 🤩

No comments requesting change but I did add a changelog section to this PR for upcoming release notes - please of course make edits to what makes more sense! 📚

Otherwise, let's get this merged and perhaps released soon?

}

type RichPreviews struct {
EntityTypes []string `json:"entity_types,omitempty" yaml:"entity_types,flow,omitempty"`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 though: The omitempty attribute worries me with slices since it's not obvious how to keep an empty list of entity types, but I notice the API errors in that case so no worries!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea, this is the common struggle of matching the API defaults with Golang language rules. Seems like we'll want to keep the omitempty to align with the API.

Comment on lines +187 to +189
RichPreviews: &RichPreviews{
EntityTypes: []string{"slack#/entities/file"},
},
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📠 praise: Thanks for including test, as always!

This reverts commit e9d48b7.

type RichPreviews struct {
EntityTypes []string `json:"entity_types,omitempty" yaml:"entity_types,flow,omitempty"`
IsActive bool `json:"is_active,omitempty" yaml:"is_active,flow,omitempty"`
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was on the fence about including this property but after some discussion, we might want to support the dev setting this rather than needing to remove the entire rich_previews setting to disable (so I added it back)

Copy link
Member

@mwbrooks mwbrooks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Looks good to me, thanks for adding support for work objects!

📝 I believe this would be a semver:minor because we're adding a new feature (work object support).

@mwbrooks mwbrooks added semver:minor Use on pull requests to describe the release version increment and removed semver:patch Use on pull requests to describe the release version increment labels Oct 21, 2025
@vegeris vegeris merged commit 4db880d into main Oct 21, 2025
8 checks passed
@vegeris vegeris deleted the evegeris-update-manifest-model-wo branch October 21, 2025 17:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog Use on updates to be included in the release notes 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.

4 participants