...
We wanted it somewhere in the system console. After brief discussion with the integrations team, it was mentioned that plugins currently can render a custom React component for a plugin’s settings but that is as much modifying they can do in the system console. There is currently no structured way to do any more modifying and would require
creative thinking
“creative thinking” as mentioned by integrations.We noticed that we already have a
commercial support
link in the dropdown in the hamburger menu of the system console which leads you the a generic Mattermost support webpage. It was decided that we like to improve upon this even further by adding a modal for licensed customers (customers with E10 and E20 licenses) which allows them to download the support packet.
...
Code Block | ||
---|---|---|
| ||
{ "ServiceSettings": { "SiteURL": "http://localhost:8065", "WebsocketURL": null, "LicenseFileLocation": null, "ListenAddress": ":8065", "ConnectionSecurity": "", "TLSCertFile": "", "TLSKeyFile": "", "TLSMinVer": null, "TLSStrictTransport": null, "TLSStrictTransportMaxAge": null, "TLSOverwriteCiphers": null, "UseLetsEncrypt": false, "LetsEncryptCertificateCacheFile": "./config/letsencrypt.cache", "Forward80To443": false, "TrustedProxyIPHeader": null, "ReadTimeout": 300, "WriteTimeout": 300, "IdleTimeout": null, "MaximumLoginAttempts": 10, "GoroutineHealthThreshold": null, "GoogleDeveloperKey": "", "EnableOAuthServiceProvider": false, "EnableIncomingWebhooks": true, "EnableOutgoingWebhooks": true, "EnableCommands": true, "EnableOnlyAdminIntegrations": null, "EnablePostUsernameOverride": false, "EnablePostIconOverride": false, "EnableLinkPreviews": false, "EnableTesting": false, "EnableDeveloper": true, "EnableOpenTracing": null, "EnableSecurityFixAlert": true, "EnableInsecureOutgoingConnections": false, "AllowedUntrustedInternalConnections": "localhost,", "EnableMultifactorAuthentication": false, "EnforceMultifactorAuthentication": false, "EnableUserAccessTokens": false, "AllowCorsFrom": "", "CorsExposedHeaders": "", "CorsAllowCredentials": false, "CorsDebug": false, "AllowCookiesForSubdomains": null, "ExtendSessionLengthWithActivity": true, "SessionLengthWebInDays": 30, "SessionLengthMobileInDays": 30, "SessionLengthSSOInDays": 30, "SessionCacheInMinutes": 10, "SessionIdleTimeoutInMinutes": 43200, "WebsocketSecurePort": null, "WebsocketPort": null, "WebserverMode": "gzip", "EnableCustomEmoji": false, "EnableEmojiPicker": true, "EnableGifPicker": false, "GfycatApiKey": "2_KtH_W5", "GfycatApiSecret": "********************************", "RestrictCustomEmojiCreation": null, "RestrictPostDelete": null, "AllowEditPost": null, "PostEditTimeLimit": -1, "TimeBetweenUserTypingUpdatesMilliseconds": null, "EnablePostSearch": null, "MinimumHashtagLength": 3, "EnableUserTypingMessages": null, "EnableChannelViewedMessages": null, "EnableUserStatuses": null, "ExperimentalEnableAuthenticationTransfer": null, "ClusterLogTimeoutMilliseconds": null, "CloseUnusedDirectMessages": null, "EnablePreviewFeatures": null, "EnableTutorial": null, "ExperimentalEnableDefaultChannelLeaveJoinMessages": null, "ExperimentalGroupUnreadChannels": null, "ExperimentalChannelOrganization": null, "ExperimentalChannelSidebarOrganization": null, "ImageProxyType": null, "ImageProxyURL": null, "ImageProxyOptions": null, "EnableAPITeamDeletion": null, "EnableAPIUserDeletion": null, "ExperimentalEnableHardenedMode": null, "DisableLegacyMFA": null, "ExperimentalStrictCSRFEnforcement": null, "EnableEmailInvitations": true, "DisableBotsWhenOwnerIsDeactivated": true, "EnableBotAccountCreation": true, "EnableSVGs": true, "EnableLatex": false, "EnableAPIChannelDeletion": null, "EnableLocalMode": null, "LocalModeSocketLocation": null, "EnableAWSMetering": null, "SplitKey": "********************************", "FeatureFlagSyncIntervalSeconds": 30, "DebugSplit": false, "ThreadAutoFollow": null, "CollapsedThreads": null, "ManagedResourcePaths": "" }, "TeamSettings": { "SiteName": "Mattermost", "MaxUsersPerTeam": 100, "EnableTeamCreation": null, "EnableUserCreation": true, "EnableOpenServer": true, "EnableUserDeactivation": null, "RestrictCreationToDomains": "", "EnableCustomBrand": false, "CustomBrandText": "", "CustomDescriptionText": "", "RestrictDirectMessage": "any", "RestrictTeamInvite": null, "RestrictPublicChannelManagement": null, "RestrictPrivateChannelManagement": null, "RestrictPublicChannelCreation": null, "RestrictPrivateChannelCreation": null, "RestrictPublicChannelDeletion": null, "RestrictPrivateChannelDeletion": null, "RestrictPrivateChannelManageMembers": null, "EnableXToLeaveChannelsFromLHS": null, "UserStatusAwayTimeout": null, "MaxChannelsPerTeam": 2000, "MaxNotificationsPerChannel": 1000000, "EnableConfirmNotificationsToChannel": true, "TeammateNameDisplay": "username", "ExperimentalViewArchivedChannels": false, "ExperimentalEnableAutomaticReplies": null, "ExperimentalHideTownSquareinLHS": null, "ExperimentalTownSquareIsReadOnly": null, "LockTeammateNameDisplay": false, "ExperimentalPrimaryTeam": null, "ExperimentalDefaultChannels": null }, "SqlSettings": { "DriverName": "postgres", "DataSource": "********************************", "DataSourceReplicas": [], "DataSourceSearchReplicas": [], "MaxIdleConns": 20, "ConnMaxLifetimeMilliseconds": 3600000, "MaxOpenConns": 300, "Trace": false, "AtRestEncryptKey": "********************************", "QueryTimeout": 30, "DisableDatabaseSearch": false }, "FileSettings": { "EnableFileAttachments": true, "EnableMobileUpload": true, "EnableMobileDownload": true, "MaxFileSize": 52428800, "DriverName": "local", "Directory": "./data/", "EnablePublicLink": false, "PublicLinkSalt": "********************************", "InitialFont": "nunito-bold.ttf", "AmazonS3AccessKeyId": "", "AmazonS3SecretAccessKey": "", "AmazonS3Bucket": "", "AmazonS3PathPrefix": "", "AmazonS3Region": "", "AmazonS3Endpoint": "s3.amazonaws.com", "AmazonS3SSL": true, "AmazonS3SignV2": false, "AmazonS3SSE": false, "AmazonS3Trace": false }, "EmailSettings": { "EnableSignUpWithEmail": true, "EnableSignInWithEmail": true, "EnableSignInWithUsername": true, "SendEmailNotifications": true, "UseChannelInEmailNotifications": null, "RequireEmailVerification": false, "FeedbackName": "", "FeedbackEmail": "test@example.com", "ReplyToAddress": "test@example.com", "FeedbackOrganization": "", "EnableSMTPAuth": true, "SMTPUsername": "", "SMTPPassword": "********************************", "SMTPServer": "localhost", "SMTPPort": "10025", "SMTPServerTimeout": null, "ConnectionSecurity": "", "SendPushNotifications": true, "PushNotificationServer": "https://push-test.mattermost.com", "PushNotificationContents": "generic", "PushNotificationBuffer": null, "EnableEmailBatching": false, "EmailBatchingBufferSize": null, "EmailBatchingInterval": null, "EnablePreviewModeBanner": true, "SkipServerCertificateVerification": false, "EmailNotificationContentsType": "full", "LoginButtonColor": null, "LoginButtonBorderColor": null, "LoginButtonTextColor": null }, "RateLimitSettings": { "Enable": false, "PerSec": 10, "MaxBurst": 100, "MemoryStoreSize": 10000, "VaryByRemoteAddr": true, "VaryByUser": false, "VaryByHeader": "" }, "PrivacySettings": { "ShowEmailAddress": true, "ShowFullName": true }, "AnnouncementSettings": { "EnableBanner": false, "BannerText": "", "BannerColor": "#f2a93b", "BannerTextColor": "#333333", "AllowBannerDismissal": true, "AdminNoticesEnabled": false, "UserNoticesEnabled": false, "NoticesURL": "https://notices.mattermost.com/", "NoticesFetchFrequency": 3600, "NoticesSkipCache": false }, "ThemeSettings": { "EnableThemeSelection": null, "DefaultTheme": null, "AllowCustomThemes": null, "AllowedThemes": null }, "GitLabSettings": { "Enable": false, "Secret": "", "Id": "", "Scope": "", "AuthEndpoint": "", "TokenEndpoint": "", "UserApiEndpoint": "", "DiscoveryEndpoint": "", "ButtonText": "", "ButtonColor": "" }, "GoogleSettings": { "Enable": false, "Secret": "", "Id": "", "Scope": "profile email", "AuthEndpoint": "https://accounts.google.com/o/oauth2/v2/auth", "TokenEndpoint": "https://www.googleapis.com/oauth2/v4/token", "UserApiEndpoint": "https://people.googleapis.com/v1/people/me?personFields=names,emailAddresses,nicknames,metadata", "DiscoveryEndpoint": "https://accounts.google.com/.well-known/openid-configuration", "ButtonText": "", "ButtonColor": "" }, "OpenIdSettings": { "Enable": false, "Secret": "", "Id": "", "Scope": "profile openid email", "AuthEndpoint": "", "TokenEndpoint": "", "UserApiEndpoint": "", "DiscoveryEndpoint": "", "ButtonText": "", "ButtonColor": "#145DBF" }, "LdapSettings": { "Enable": true, "EnableSync": false, "LdapServer": "localhost", "LdapPort": 389, "ConnectionSecurity": "", "BaseDN": "dc=mm,dc=test,dc=com", "BindUsername": "cn=admin,dc=mm,dc=test,dc=com", "BindPassword": "********************************", "UserFilter": "", "GroupFilter": "", "GuestFilter": "", "EnableAdminFilter": null, "AdminFilter": null, "GroupDisplayNameAttribute": "cn", "GroupIdAttribute": "entryUUID", "FirstNameAttribute": "cn", "LastNameAttribute": "sn", "EmailAttribute": "mail", "UsernameAttribute": "uid", "NicknameAttribute": "cn", "IdAttribute": "uid", "PositionAttribute": "sAMAccountType", "LoginIdAttribute": "uid", "PictureAttribute": "", "SyncIntervalMinutes": 10000, "SkipCertificateVerification": false, "PublicCertificateFile": "", "PrivateKeyFile": "", "QueryTimeout": 60, "MaxPageSize": 500, "LoginFieldName": "", "LoginButtonColor": "#0000", "LoginButtonBorderColor": "#2389D7", "LoginButtonTextColor": "#2389D7", "Trace": false }, ... } |
...
Here, I will be discussing how we will retrieve the information seen in the support_packet.yaml
Server OS:
In golang, we can use runtime.GOOS
to get the operating system which the server is running on.
...