Mattermost Developer Documentation

website·Indexed 30 days ago

https://d2qn0wdda1fmh5.cloudfront.net/

Developer guides for contributing to Mattermost, covering the server, web app, desktop app, and mobile app. Includes architecture details for the Electron-based desktop app, Redux state management in the web app, Go module dependency management for the server, and instructions for building white-labeled mobile apps with React Native.

Tokens
607K
Snippets
2.5K
Records
4.9K
Agent score
49%

What's inside Mattermost

  1. Overview of Mattermost End User Capabilities

    Mattermost is a collaboration platform where users can communicate via channels, messages, and threads, and perform operational work. Key functional areas include:

    • Collaboration: Connecting with teammates through channels, threads, and audio calls with screen sharing.
    • Workflow Automation: Using Mattermost Playbooks to create repeatable, checklist-based automated processes.
    • Project Management: Using Mattermost Boards for Kanban-style operational planning and coordination.
    • AI Agents: Utilizing AI to assist in decision-making, information retrieval, and task automation.
    • Workspace Management: Accessing the platform via web, desktop, or mobile apps and customizing the experience through workspace preferences.
  2. Overview of Mattermost calls-offloader service

    The calls-offloader is a dedicated microservice designed to handle resource-intensive tasks for Mattermost Calls, ensuring the main Mattermost server and RTCD service maintain optimal performance. Its primary responsibilities include:

    • Call recording: Capturing audio and screen sharing content.
    • Call transcription: Providing automated transcription of recorded calls.
    • Live captions (Experimental): Real-time transcription during active calls.
  3. Overview of Mattermost centralized logging architecture

    Centralized logging for Mattermost is achieved by adding Grafana Loki (the log aggregation engine) to a monitoring server and installing the OpenTelemetry (OTel) Collector on each Mattermost application server. The OTel Collector ships logs from the application servers to Loki via TCP port 3100. This setup allows operators to search, filter, and correlate logs across all servers within the Grafana interface, alongside Prometheus metrics.
  4. Overview of Mattermost Team Edition

    Mattermost Team Edition is a free, open-source, self-hosted collaboration platform licensed under MIT. It is deployed as a single Linux binary with PostgreSQL. It is designed for small teams, hobbyists, or personal use with fewer than 250 activated users. It is not recommended for government or sensitive commercial workloads. Note that as of 2025, Single Sign-On (SSO) is being removed from Team Edition to align it with its intended scope for small-scale use.
  5. Overview of Mattermost Calls native capabilities

    Mattermost Calls provides native, self-hosted real-time communication within a user's own network. Core functionality includes:

    • 1:1 Audio Calls: Direct voice communication between two participants.
    • Audio Conference Calls: Multi-party voice calls for team coordination.
    • Screen Sharing: Visual collaboration and live troubleshooting during calls.
    • Integrated Chat: Messaging during calls with searchable history post-call.
    • Host Controls: Management of participants and mute/unmute functions during conferences.
  6. Overview of Mattermost Legal Hold

    A Legal Hold (litigation hold) in Mattermost is used to preserve relevant information when litigation is anticipated, ensuring compliance with legal requirements like the Federal Rules of Civil Procedure (FRCP). It prevents the deletion of data for specific users or groups, even if a data retention policy is in place. It is primarily used for litigation, regulatory investigations, audits, and records management. Legal Hold can be combined with eDiscovery and data retention policies for granular control over data preservation.
  7. Overview of Mattermost Cloud VPC Private Connectivity

    Virtual Private Cloud (VPC) Private Connectivity (Private Link) allows Enterprise Cloud customers to establish private network connections between their AWS environment and Mattermost Cloud. This removes the need to use the public internet for accessing Mattermost Cloud, connecting to private webhooks/endpoints, or allowing the Mattermost Infrastructure team to manage an instance hosted in the customer's VPC via an EKS cluster.
  8. Overview of Mattermost session attributes

    Session attributes describe how a user is connecting to Mattermost (e.g., network, client type, device state) and are used in permission policies to evaluate access. They are distinct from user attributes, which describe who the user is. Session attributes are referenced in policy expressions using the prefix user.session.<name> (e.g., user.session.vpn_active == "true").

    There are two types of session attributes:

    1. Server-derived attributes: Measured by the Mattermost server from the request (e.g., IP address, User-Agent header).
    2. Client-reported attributes: Collected by the Desktop or mobile app via OS APIs and sent in the X-MM-Session-Attributes request header.

    Session attributes are stored in an in-memory cache and are not written to the database or included in compliance exports. They are discarded upon logout, session revocation, or expiration.

  9. Overview of Mattermost logging types

    Mattermost utilizes three primary logging systems to handle different operational and compliance needs:

    1. Log Settings: Captures general server operations, errors, startup, API calls, and system events. From v11.0, this includes notification subsystem events. (Production Recommendation: Always enabled; Console/File: INFO).
    2. Audit Log Settings: Captures security and compliance events, user actions, API access, authentication, and administrative changes. (Production Recommendation: Enable if compliance is required).
    3. Notification Log Settings: (v10.12 and earlier only) Captures push notifications, email delivery, and mobile notification processing. (Production Recommendation: Enable for troubleshooting).

    By default, logs are written in machine-readable JSON format to both the console (stdout) and the mattermost.log file.