Skip to content

add initial support/manifest for Mattermost integration #842

@modnfacex

Description

@modnfacex

🚀 Overview

This Pull Request introduces native support for Mattermost integration. It enables Mattermost users to initiate, manage, and join plugNmeet video conferences directly from any Mattermost channel using slash commands (e.g., /plugnmeet start).

✨ Key Features

  • Slash Command Handler: Added a new API endpoint /auth/mattermost/command to process incoming requests from Mattermost.

  • Dynamic Room Creation: Automatically generates a secure plugNmeet room when a user triggers the command.

  • Interactive Message Cards: Returns a formatted Mattermost message containing the "Join Meeting" button and meeting details (Room ID, Password).

  • Security & Verification: Implemented Mattermost Token Verification to ensure requests originate from a trusted Mattermost instance.

🛠 Technical Implementation

  1. Endpoint: Added a new controller in the handlers layer to parse application/x-www-form-urlencoded data from Mattermost.

  2. Auth Integration: Integrated with existing RoomService to handle room creation logic and Internal API for token generation.

  3. Payload Structure:

    • Requests are validated using the MATTERMOST_OUTGOING_TOKEN env variable.

    • Responses follow the Mattermost Integration Message schema.

📝 Configuration (New Environment Variables)

To enable this integration, the following variables need to be added to the config.yaml or .env:

Variable | Description -- | -- MATTERMOST_ENABLED | Set to true to enable the endpoint. MATTERMOST_OUTGOING_TOKEN | The verification token provided by Mattermost. PLUGNMEET_EXTERNAL_URL | The public URL used for generating join links.
Export to Sheets

🧪 How to Test

  1. Deploy this branch to a test server.

  2. In Mattermost, go to Integrations > Slash Commands.

  3. Create a new command /plugnmeet and set the URL to https://your-domain.com/api/mattermost/command.

  4. Run /plugnmeet start in any channel.

  5. Verify if the meeting card appears and the "Join" button redirects correctly.

📸 Screenshots (Optional)

Add screenshots showing the Mattermost message card here

🚀 Overview

This Pull Request introduces native support for Mattermost integration. It enables Mattermost users to initiate, manage, and join plugNmeet video conferences directly from any Mattermost channel using slash commands (e.g., /plugnmeet start).

✨ Key Features

Slash Command Handler: Added a new API endpoint /auth/mattermost/command to process incoming requests from Mattermost.

Dynamic Room Creation: Automatically generates a secure plugNmeet room when a user triggers the command.

Interactive Message Cards: Returns a formatted Mattermost message containing the "Join Meeting" button and meeting details (Room ID, Password).

Security & Verification: Implemented Mattermost Token Verification to ensure requests originate from a trusted Mattermost instance.

🛠 Technical Implementation

Endpoint: Added a new controller in the handlers layer to parse application/x-www-form-urlencoded data from Mattermost.

Auth Integration: Integrated with existing RoomService to handle room creation logic and Internal API for token generation.

Payload Structure:

Requests are validated using the MATTERMOST_OUTGOING_TOKEN env variable.

Responses follow the Mattermost Integration Message schema.

📝 Configuration (New Environment Variables)

To enable this integration, the following variables need to be added to the config.yaml or .env:

Variable Description
MATTERMOST_ENABLED Set to true to enable the endpoint.
MATTERMOST_OUTGOING_TOKEN The verification token provided by Mattermost.
PLUGNMEET_EXTERNAL_URL The public URL used for generating join links.
🧪 How to Test

Deploy this branch to a test server.

In Mattermost, go to Integrations > Slash Commands.

Create a new command /plugnmeet and set the URL to https://your-domain.com/api/mattermost/command.

Run /plugnmeet start in any channel.

Verify if the meeting card appears and the "Join" button redirects correctly.

📸 Screenshots (Optional)

Add screenshots showing the Mattermost message card here

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions