spenpal opened a new issue, #8555: URL: https://github.com/apache/incubator-devlake/issues/8555
### Search before asking - [x] I had searched in the [issues](https://github.com/apache/incubator-devlake/issues?q=is%3Aissue) and found no similar feature requirement. ### Use case The Slack plugin backend has been fully implemented since May 2023 (PR #5016), but users cannot create Slack connections through the DevLake dashboard UI because the frontend integration is missing. This prevents users from easily configuring Slack data collection without using the API directly. Currently, users who want to collect Slack metrics (channels, messages, threads) must: 1. Use the REST API directly to create connections 2. Cannot use the intuitive web UI workflow 3. Miss out on the guided setup experience available for other plugins ### Description Complete the Slack plugin implementation by adding the missing frontend UI components to make it available in the DevLake dashboard. #### Current Status - ✅ **Backend Implementation**: Fully functional (since commit `47ebe5d54`, May 12, 2023) - API endpoints for connection management - Data collection for channels, messages, and threads - Database models and migration scripts - ❌ **Frontend Integration**: Missing - Not registered in `config-ui/src/plugins/register/index.ts` - No UI components for connection setup - Not visible in the dashboard connections list #### Required Implementation 1. **Plugin Registration** - Add Slack to the `pluginConfigs` array in `/config-ui/src/plugins/register/index.ts` - Follow the pattern used by other plugins (GitHub, Jira, etc.) 2. **UI Components** (create `/config-ui/src/plugins/register/slack/` directory) - `index.ts` - Main plugin configuration - Connection form component for Slack API token setup - Data scope configuration (channel selection) - Transformation rules (if needed) 3. **Connection Configuration** - Slack API token input field - Endpoint URL configuration (default: `https://slack.com/api/`) - Rate limit configuration - Connection test functionality 4. **Data Scope Selection** - Channel selection interface - Allow users to choose which channels to collect data from - Support for both public and private channels (based on bot permissions) #### Technical Details **Backend API Endpoints** (already implemented): - `POST /plugins/slack/test` - Test connection - `GET /plugins/slack/connections` - List connections - `POST /plugins/slack/connections` - Create connection - `PATCH /plugins/slack/connections/{id}` - Update connection - `DELETE /plugins/slack/connections/{id}` - Delete connection **Data Models** (already implemented): - `SlackConnection` - Connection configuration - `SlackChannel` - Channel metadata - `SlackChannelMessage` - Messages and threads **Required Frontend Configuration**: ```typescript // Example structure for /config-ui/src/plugins/register/slack/index.ts export const SlackConfig = { plugin: 'slack', name: 'Slack', icon: 'slack', // Add Slack icon sort: 100, connection: { docLink: 'https://devlake.apache.org/docs/Plugins/slack', fields: [ 'name', 'endpoint', 'token', 'rateLimitPerHour' ] }, dataScope: { // Channel selection implementation } } ``` ### Expected Behavior After implementation: 1. Users can see "Slack" in the connections list in the DevLake UI 2. Users can create Slack connections through a guided setup form 3. Users can select which channels to collect data from 4. Users can test their Slack connection before saving 5. The setup process matches the UX of other integrated plugins ### Benefits - **Improved User Experience**: No need to use API directly - **Consistency**: Matches the setup flow of other plugins - **Accessibility**: Makes Slack integration available to non-technical users - **Documentation Accuracy**: Removes "pending" status from Slack plugin docs --- **Additional Context:** The Slack plugin backend collects: - **Channels**: All channels the bot has access to (public/private) - **Messages**: Channel messages with metadata (user, timestamp, content) - **Threads**: Threaded conversations and replies This would enable users to analyze Slack communication patterns, measure team collaboration, and integrate Slack data with other DevOps metrics for comprehensive team insights. ### Related issues - Original Slack plugin implementation: #5161 (closed by PR #5016) - Backend implementation PR: #5016 (merged May 12, 2023) ### Are you willing to submit a PR? - [ ] Yes I am willing to submit a PR! ### Code of Conduct - [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@devlake.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org