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

Reply via email to