For an overview of Mattermost architecture, see this page on the Mattermost site. A brief summary of the key points is provided below:
At its core, Mattermost is a single-compiled Go binary that is exposed as a Restful JSON web server with Javascript and Go clients. See the Restful API docs here.
It provides the following, supported in this charm:
- Authentication client: provides the functionality for users to log into Mattermost via email address and password in Team Edition. Enterprise E20 adds the ability to authenticate using SAML SSO providers, which this charm supports.
- Notification service: sends notifications via SMTP or a Push Notification Service for mobile applications.
- Data management service: connects to supported databases and file storage solutions (local or Amazon S3), and manages the reading and writing of data to and from them.
The binary talks to a PostgreSQL database and a filestore such as S3.