Cypress/E2E: Upgrade cypress and test server config (#24594)

* upgrade cypress and test server config

* fix checks to lint and types

* fix CloudSettings and upgrade packages to latest

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
This commit is contained in:
Saturnino Abril 2023-10-03 22:26:37 +08:00 committed by GitHub
parent 43cb6fa6c1
commit f3f9a84456
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 2347 additions and 1544 deletions

View File

@ -95,6 +95,7 @@
"format": ["PascalCase"] "format": ["PascalCase"]
} }
], ],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-non-null-assertion": 0, "@typescript-eslint/no-non-null-assertion": 0,
"@typescript-eslint/no-unused-vars": [ "@typescript-eslint/no-unused-vars": [
2, 2,

File diff suppressed because it is too large Load Diff

View File

@ -1,54 +1,54 @@
{ {
"devDependencies": { "devDependencies": {
"@babel/eslint-parser": "7.21.8", "@babel/eslint-parser": "7.22.15",
"@babel/eslint-plugin": "7.19.1", "@babel/eslint-plugin": "7.22.10",
"@cypress/request": "2.88.11", "@cypress/request": "3.0.1",
"@mattermost/types": "7.10.0", "@mattermost/types": "9.0.0",
"@testing-library/cypress": "9.0.0", "@testing-library/cypress": "10.0.1",
"@types/async": "3.2.20", "@types/async": "3.2.21",
"@types/authenticator": "1.1.1", "@types/authenticator": "1.1.2",
"@types/express": "4.17.17", "@types/express": "4.17.18",
"@types/fs-extra": "11.0.1", "@types/fs-extra": "11.0.2",
"@types/lodash": "4.14.194", "@types/lodash": "4.14.199",
"@types/lodash.intersection": "4.4.7", "@types/lodash.intersection": "4.4.7",
"@types/lodash.mapkeys": "4.6.7", "@types/lodash.mapkeys": "4.6.7",
"@types/lodash.without": "4.4.7", "@types/lodash.without": "4.4.7",
"@types/mime-types": "2.1.1", "@types/mime-types": "2.1.2",
"@types/mochawesome": "6.2.1", "@types/mochawesome": "6.2.2",
"@types/pdf-parse": "1.1.1", "@types/pdf-parse": "1.1.2",
"@types/recursive-readdir": "2.2.1", "@types/recursive-readdir": "2.2.2",
"@types/shelljs": "0.8.12", "@types/shelljs": "0.8.13",
"@types/uuid": "9.0.1", "@types/uuid": "9.0.4",
"@typescript-eslint/eslint-plugin": "5.59.2", "@typescript-eslint/eslint-plugin": "6.7.4",
"@typescript-eslint/parser": "5.59.2", "@typescript-eslint/parser": "6.7.4",
"async": "3.2.4", "async": "3.2.4",
"authenticator": "1.1.5", "authenticator": "1.1.5",
"aws-sdk": "2.1371.0", "aws-sdk": "2.1468.0",
"axios": "1.4.0", "axios": "1.5.1",
"axios-retry": "3.4.0", "axios-retry": "3.8.0",
"chai": "4.3.7", "chai": "4.3.10",
"chalk": "4.1.2", "chalk": "4.1.2",
"client-oauth2": "github:larkox/js-client-oauth2#e24e2eb5dfcbbbb3a59d095e831dbe0012b0ac49", "client-oauth2": "github:larkox/js-client-oauth2#e24e2eb5dfcbbbb3a59d095e831dbe0012b0ac49",
"cross-env": "7.0.3", "cross-env": "7.0.3",
"cypress": "12.11.0", "cypress": "13.3.0",
"cypress-file-upload": "5.0.8", "cypress-file-upload": "5.0.8",
"cypress-multi-reporters": "1.6.3", "cypress-multi-reporters": "1.6.3",
"cypress-plugin-tab": "1.0.5", "cypress-plugin-tab": "1.0.5",
"cypress-wait-until": "1.7.2", "cypress-wait-until": "2.0.1",
"dayjs": "1.11.7", "dayjs": "1.11.10",
"deepmerge": "4.3.1", "deepmerge": "4.3.1",
"dotenv": "16.0.3", "dotenv": "16.3.1",
"eslint": "8.39.0", "eslint": "8.50.0",
"eslint-import-resolver-webpack": "0.13.2", "eslint-import-resolver-webpack": "0.13.7",
"eslint-plugin-cypress": "2.13.3", "eslint-plugin-cypress": "2.15.1",
"eslint-plugin-header": "3.1.1", "eslint-plugin-header": "3.1.1",
"eslint-plugin-import": "2.27.5", "eslint-plugin-import": "2.28.1",
"eslint-plugin-mattermost": "github:mattermost/eslint-plugin-mattermost#5b0c972eacf19286e4c66221b39113bf8728a99e", "eslint-plugin-mattermost": "github:mattermost/eslint-plugin-mattermost#5b0c972eacf19286e4c66221b39113bf8728a99e",
"eslint-plugin-no-only-tests": "3.1.0", "eslint-plugin-no-only-tests": "3.1.0",
"eslint-plugin-react": "7.32.2", "eslint-plugin-react": "7.33.2",
"express": "4.18.2", "express": "4.18.2",
"extract-zip": "2.0.1", "extract-zip": "2.0.1",
"knex": "2.4.2", "knex": "2.5.1",
"localforage": "1.10.0", "localforage": "1.10.0",
"lodash.intersection": "4.4.0", "lodash.intersection": "4.4.0",
"lodash.mapkeys": "4.6.0", "lodash.mapkeys": "4.6.0",
@ -58,7 +58,7 @@
"mime": "3.0.0", "mime": "3.0.0",
"mime-types": "2.1.35", "mime-types": "2.1.35",
"mocha": "10.2.0", "mocha": "10.2.0",
"mocha-junit-reporter": "2.2.0", "mocha-junit-reporter": "2.2.1",
"mocha-multi-reporters": "1.5.1", "mocha-multi-reporters": "1.5.1",
"mochawesome": "7.1.3", "mochawesome": "7.1.3",
"mochawesome-merge": "4.3.0", "mochawesome-merge": "4.3.0",
@ -67,12 +67,12 @@
"mysql": "2.18.1", "mysql": "2.18.1",
"path": "0.12.7", "path": "0.12.7",
"pdf-parse": "1.1.1", "pdf-parse": "1.1.1",
"pg": "8.10.0", "pg": "8.11.3",
"recursive-readdir": "2.2.3", "recursive-readdir": "2.2.3",
"shelljs": "0.8.5", "shelljs": "0.8.5",
"timezones.json": "1.7.0", "timezones.json": "1.7.1",
"typescript": "5.0.4", "typescript": "5.2.2",
"uuid": "9.0.0", "uuid": "9.0.1",
"yargs": "17.7.2" "yargs": "17.7.2"
}, },
"overrides": { "overrides": {
@ -81,7 +81,6 @@
} }
}, },
"scripts": { "scripts": {
"postinstall": "patch-package",
"check-types": "tsc -b", "check-types": "tsc -b",
"cypress:open": "cross-env TZ=Etc/UTC cypress open", "cypress:open": "cross-env TZ=Etc/UTC cypress open",
"cypress:run": "cross-env TZ=Etc/UTC cypress run", "cypress:run": "cross-env TZ=Etc/UTC cypress run",
@ -97,8 +96,5 @@
"uniq-meta": "grep -r \"^// $META:\" cypress | grep -ow '@\\w*' | sort | uniq", "uniq-meta": "grep -r \"^// $META:\" cypress | grep -ow '@\\w*' | sort | uniq",
"check": "eslint --ext .js,.ts . --quiet --cache", "check": "eslint --ext .js,.ts . --quiet --cache",
"fix": "eslint --ext .js,.ts . --quiet --fix --cache" "fix": "eslint --ext .js,.ts . --quiet --fix --cache"
},
"dependencies": {
"patch-package": "7.0.0"
} }
} }

View File

@ -1,13 +0,0 @@
diff --git a/node_modules/@testing-library/cypress/dist/index.js b/node_modules/@testing-library/cypress/dist/index.js
index 9a03c94..b2d3aac 100644
--- a/node_modules/@testing-library/cypress/dist/index.js
+++ b/node_modules/@testing-library/cypress/dist/index.js
@@ -38,7 +38,7 @@ function createQuery(queryName, implementationName) {
};
const log = options.log !== false && Cypress.log({
name: queryName,
- type: this.get('prev').get('chainerId') === this.get('chainerId') ? 'child' : 'parent',
+ type: this.get('prev') && this.get('prev').get('chainerId') === this.get('chainerId') ? 'child' : 'parent',
message: inputArr,
timeout: options.timeout,
consoleProps: () => consoleProps

View File

@ -1,8 +1,6 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information. // See LICENSE.txt for license information.
import {UserProfile} from 'mattermost-redux/types/users';
// *************************************************************** // ***************************************************************
// - [#] indicates a test step (e.g. # Go to a page) // - [#] indicates a test step (e.g. # Go to a page)
// - [*] indicates an assertion (e.g. * Check the title) // - [*] indicates an assertion (e.g. * Check the title)
@ -13,7 +11,7 @@ import {UserProfile} from 'mattermost-redux/types/users';
// Group: @channels @channel // Group: @channels @channel
describe('Leave and Archive channel actions display as destructive', () => { describe('Leave and Archive channel actions display as destructive', () => {
let testUser: UserProfile; let testUser: Cypress.UserProfile;
let offTopicUrl: string; let offTopicUrl: string;
before(() => { before(() => {

View File

@ -10,116 +10,6 @@
// Stage: @prod // Stage: @prod
// Group: @channels @cloud_only @cloud_trial // Group: @channels @cloud_only @cloud_trial
function simulateSubscription() {
cy.intercept('GET', '**/api/v4/cloud/subscription/invoices', {
statusCode: 200,
body: [
{
id: 'in_1Lz8b0I67GP2qpb43kcuMyFP',
number: '8D53267B-0006',
create_at: 1667263490000,
total: 65,
tax: 0,
status: 'open',
description: '',
period_start: 1664582400000,
period_end: 1667260800000,
subscription_id: 'sub_K0AxuWCDoDD9Qq',
line_items: [
{
price_id: 'price_1KLUYiI67GP2qpb48DXFukcJ',
total: 65,
quantity: 0.06451612903225806,
price_per_unit: 1000,
description: 'Cloud Professional',
},
],
current_product_name: 'Cloud Professional',
},
{
id: 'in_1LntnKI67GP2qpb4VObu3NgP',
number: '8D53267B-0005',
create_at: 1664584986000,
total: 733,
tax: 0,
status: 'failed',
description: '',
period_start: 1661990400000,
period_end: 1664582400000,
subscription_id: 'sub_K0AxuWCDoDD9Qq',
line_items: [
{
price_id: 'price_1KLUZ2I67GP2qpb45uTS89eb',
total: 733,
quantity: 0.7333333333333333,
price_per_unit: 999,
description: 'Cloud Professional',
},
],
current_product_name: 'Cloud Professional',
},
{
id: 'in_1LntnKI67GP2qpb4VObu3NgV',
number: '8D53267B-0005',
create_at: 1664584986000,
total: 733,
tax: 0,
status: 'paid',
description: '',
period_start: 1661990400000,
period_end: 1664582400000,
subscription_id: 'sub_K0AxuWCDoDD9Qq',
line_items: [
{
price_id: 'price_1KLUZ2I67GP2qpb45uTS89eb',
total: 733,
quantity: 0.7333333333333333,
price_per_unit: 999,
description: 'Cloud Professional',
},
],
current_product_name: 'Cloud Professional',
},
],
});
cy.intercept('GET', '**/api/v4/cloud/subscription', {
statusCode: 200,
body: {
id: 'sub_test1',
is_free_trial: 'true',
customer_id: '5zqhakmibpgyix9juiwwkpfnmr',
product_id: 'prod_K0AxuWCDoDD9Qq',
seats: 25,
status: 'active',
},
});
cy.intercept('GET', '**/api/v4/cloud/products**', {
statusCode: 200,
body:
[
{
id: 'prod_LSBESgGXq9KlLj',
sku: 'cloud-starter',
price_per_seat: 0,
name: 'Cloud Free',
},
{
id: 'prod_K0AxuWCDoDD9Qq',
sku: 'cloud-professional',
price_per_seat: 10,
name: 'Cloud Professional',
},
{
id: 'prod_Jh6tBLcgWWOOog',
sku: 'cloud-enterprise',
price_per_seat: 30,
name: 'Cloud Enterprise',
},
],
});
}
describe('System Console - Billing History', () => { describe('System Console - Billing History', () => {
before(() => { before(() => {
simulateSubscription(); simulateSubscription();
@ -166,6 +56,116 @@ describe('System Console - Billing History', () => {
cy.get('@tableRows').eq(1).find('td').eq(4).find('a').should('have.attr', 'href').and('include', 'invoices/in_1LntnKI67GP2qpb4VObu3NgP/pdf'); cy.get('@tableRows').eq(1).find('td').eq(4).find('a').should('have.attr', 'href').and('include', 'invoices/in_1LntnKI67GP2qpb4VObu3NgP/pdf');
cy.get('@tableRows').eq(2).find('td').eq(4).find('a').should('have.attr', 'href').and('include', 'invoices/in_1LntnKI67GP2qpb4VObu3NgV/pdf'); cy.get('@tableRows').eq(2).find('td').eq(4).find('a').should('have.attr', 'href').and('include', 'invoices/in_1LntnKI67GP2qpb4VObu3NgV/pdf');
}); });
function simulateSubscription() {
cy.intercept('GET', '**/api/v4/cloud/subscription/invoices', {
statusCode: 200,
body: [
{
id: 'in_1Lz8b0I67GP2qpb43kcuMyFP',
number: '8D53267B-0006',
create_at: 1667263490000,
total: 65,
tax: 0,
status: 'open',
description: '',
period_start: 1664582400000,
period_end: 1667260800000,
subscription_id: 'sub_K0AxuWCDoDD9Qq',
line_items: [
{
price_id: 'price_1KLUYiI67GP2qpb48DXFukcJ',
total: 65,
quantity: 0.06451612903225806,
price_per_unit: 1000,
description: 'Cloud Professional',
},
],
current_product_name: 'Cloud Professional',
},
{
id: 'in_1LntnKI67GP2qpb4VObu3NgP',
number: '8D53267B-0005',
create_at: 1664584986000,
total: 733,
tax: 0,
status: 'failed',
description: '',
period_start: 1661990400000,
period_end: 1664582400000,
subscription_id: 'sub_K0AxuWCDoDD9Qq',
line_items: [
{
price_id: 'price_1KLUZ2I67GP2qpb45uTS89eb',
total: 733,
quantity: 0.7333333333333333,
price_per_unit: 999,
description: 'Cloud Professional',
},
],
current_product_name: 'Cloud Professional',
},
{
id: 'in_1LntnKI67GP2qpb4VObu3NgV',
number: '8D53267B-0005',
create_at: 1664584986000,
total: 733,
tax: 0,
status: 'paid',
description: '',
period_start: 1661990400000,
period_end: 1664582400000,
subscription_id: 'sub_K0AxuWCDoDD9Qq',
line_items: [
{
price_id: 'price_1KLUZ2I67GP2qpb45uTS89eb',
total: 733,
quantity: 0.7333333333333333,
price_per_unit: 999,
description: 'Cloud Professional',
},
],
current_product_name: 'Cloud Professional',
},
],
});
cy.intercept('GET', '**/api/v4/cloud/subscription', {
statusCode: 200,
body: {
id: 'sub_test1',
is_free_trial: 'true',
customer_id: '5zqhakmibpgyix9juiwwkpfnmr',
product_id: 'prod_K0AxuWCDoDD9Qq',
seats: 25,
status: 'active',
},
});
cy.intercept('GET', '**/api/v4/cloud/products**', {
statusCode: 200,
body:
[
{
id: 'prod_LSBESgGXq9KlLj',
sku: 'cloud-starter',
price_per_seat: 0,
name: 'Cloud Free',
},
{
id: 'prod_K0AxuWCDoDD9Qq',
sku: 'cloud-professional',
price_per_seat: 10,
name: 'Cloud Professional',
},
{
id: 'prod_Jh6tBLcgWWOOog',
sku: 'cloud-enterprise',
price_per_seat: 30,
name: 'Cloud Enterprise',
},
],
});
}
}); });
describe('System Console - Empty Billing Screen', () => { describe('System Console - Empty Billing Screen', () => {

View File

@ -10,45 +10,6 @@
// Stage: @prod // Stage: @prod
// Group: @channels @cloud_only @cloud_trial // Group: @channels @cloud_only @cloud_trial
function simulateSubscription() {
cy.intercept('GET', '**/api/v4/cloud/subscription', {
statusCode: 200,
body: {
id: 'sub_test1',
is_free_trial: 'true',
customer_id: '5zqhakmibpgyix9juiwwkpfnmr',
product_id: 'prod_Jh6tBLcgWWOOog',
seats: 25,
status: 'active',
},
});
cy.intercept('GET', '**/api/v4/cloud/products**', {
statusCode: 200,
body:
[
{
id: 'prod_LSBESgGXq9KlLj',
sku: 'cloud-starter',
price_per_seat: 0,
name: 'Cloud Free',
},
{
id: 'prod_K0AxuWCDoDD9Qq',
sku: 'cloud-professional',
price_per_seat: 10,
name: 'Cloud Professional',
},
{
id: 'prod_Jh6tBLcgWWOOog',
sku: 'cloud-enterprise',
price_per_seat: 30,
name: 'Cloud Enterprise',
},
],
});
}
describe('System Console - Payment Information section', () => { describe('System Console - Payment Information section', () => {
before(() => { before(() => {
// * Check if server has license for Cloud // * Check if server has license for Cloud
@ -116,5 +77,43 @@ describe('System Console - Payment Information section', () => {
cy.get('span.savedFeedback__text').should('be.visible').should('have.text', 'Thanks for sharing feedback!'); cy.get('span.savedFeedback__text').should('be.visible').should('have.text', 'Thanks for sharing feedback!');
cy.get('button#feedbackSubmitedDone').should('be.enabled').click(); cy.get('button#feedbackSubmitedDone').should('be.enabled').click();
}); });
});
function simulateSubscription() {
cy.intercept('GET', '**/api/v4/cloud/subscription', {
statusCode: 200,
body: {
id: 'sub_test1',
is_free_trial: 'true',
customer_id: '5zqhakmibpgyix9juiwwkpfnmr',
product_id: 'prod_Jh6tBLcgWWOOog',
seats: 25,
status: 'active',
},
});
cy.intercept('GET', '**/api/v4/cloud/products**', {
statusCode: 200,
body:
[
{
id: 'prod_LSBESgGXq9KlLj',
sku: 'cloud-starter',
price_per_seat: 0,
name: 'Cloud Free',
},
{
id: 'prod_K0AxuWCDoDD9Qq',
sku: 'cloud-professional',
price_per_seat: 10,
name: 'Cloud Professional',
},
{
id: 'prod_Jh6tBLcgWWOOog',
sku: 'cloud-enterprise',
price_per_seat: 30,
name: 'Cloud Enterprise',
},
],
});
}
});

View File

@ -10,37 +10,6 @@
// Stage: @prod // Stage: @prod
// Group: @channels @enterprise @not_cloud @system_console // Group: @channels @enterprise @not_cloud @system_console
// # Goes to the System Scheme page as System Admin
const goToSessionLengths = () => {
cy.apiAdminLogin();
cy.visit('/admin_console/environment/session_lengths');
};
// # Wait's until the Saving text becomes Save
const waitUntilConfigSave = () => {
cy.waitUntil(() => cy.get('#saveSetting').then((el) => {
return el[0].innerText === 'Save';
}));
};
// Clicks the save button in the system console page.
// waitUntilConfigSaved: If we need to wait for the save button to go from saving -> save.
// Usually we need to wait unless we are doing this in team override scheme
const saveConfig = (waitUntilConfigSaved = true, clickConfirmationButton = false) => {
// # Save if possible (if previous test ended abruptly all permissions may already be enabled)
cy.get('#saveSetting').then((btn) => {
if (btn.is(':enabled')) {
btn.click();
}
});
if (clickConfirmationButton) {
cy.get('#confirmModalButton').click();
}
if (waitUntilConfigSaved) {
waitUntilConfigSave();
}
};
describe('MM-T2574 Session Lengths', () => { describe('MM-T2574 Session Lengths', () => {
before(() => { before(() => {
cy.shouldNotRunOnCloudEdition(); cy.shouldNotRunOnCloudEdition();
@ -125,4 +94,35 @@ describe('MM-T2574 Session Lengths', () => {
} }
}); });
}); });
// # Goes to the System Scheme page as System Admin
const goToSessionLengths = () => {
cy.apiAdminLogin();
cy.visit('/admin_console/environment/session_lengths');
};
// # Wait's until the Saving text becomes Save
const waitUntilConfigSave = () => {
cy.waitUntil(() => cy.get('#saveSetting').then((el) => {
return el[0].innerText === 'Save';
}));
};
// Clicks the save button in the system console page.
// waitUntilConfigSaved: If we need to wait for the save button to go from saving -> save.
// Usually we need to wait unless we are doing this in team override scheme
const saveConfig = (waitUntilConfigSaved = true, clickConfirmationButton = false) => {
// # Save if possible (if previous test ended abruptly all permissions may already be enabled)
cy.get('#saveSetting').then((btn) => {
if (btn.is(':enabled')) {
btn.click();
}
});
if (clickConfirmationButton) {
cy.get('#confirmModalButton').click();
}
if (waitUntilConfigSaved) {
waitUntilConfigSave();
}
};
}); });

View File

@ -9,26 +9,6 @@
// Group: @channels @enterprise @not_cloud // Group: @channels @enterprise @not_cloud
function withTrialBefore(trialed: string) {
cy.intercept('GET', '**/api/v4/trial-license/prev', {
statusCode: 200,
body: {
IsLicensed: trialed,
IsTrial: trialed,
},
});
}
function withTrialLicense(trial: string) {
cy.intercept('GET', '**/api/v4/license/client?format=old', {
statusCode: 200,
body: {
IsLicensed: 'true',
IsTrial: trial,
},
});
}
describe('Self hosted Pricing modal', () => { describe('Self hosted Pricing modal', () => {
let urlL: string | undefined; let urlL: string | undefined;
let createdUser: Cypress.UserProfile | undefined; let createdUser: Cypress.UserProfile | undefined;
@ -191,4 +171,24 @@ describe('Self hosted Pricing modal', () => {
cy.findByText('https://mattermost.com/pl/pricing/#self-hosted').last().should('exist'); cy.findByText('https://mattermost.com/pl/pricing/#self-hosted').last().should('exist');
}); });
function withTrialBefore(trialed: string) {
cy.intercept('GET', '**/api/v4/trial-license/prev', {
statusCode: 200,
body: {
IsLicensed: trialed,
IsTrial: trialed,
},
});
}
function withTrialLicense(trial: string) {
cy.intercept('GET', '**/api/v4/license/client?format=old', {
statusCode: 200,
body: {
IsLicensed: 'true',
IsTrial: trial,
},
});
}
}); });

View File

@ -26,7 +26,7 @@ describe('channels > App Bar', {testIsolation: true}, () => {
describe('App Bar disabled', () => { describe('App Bar disabled', () => {
it('should not show the Playbook App Bar icon', () => { it('should not show the Playbook App Bar icon', () => {
cy.apiUpdateConfig({ExperimentalSettings: {EnableAppBar: false}}); cy.apiUpdateConfig({ExperimentalSettings: {DisableAppBar: true}});
// # Login as testUser // # Login as testUser
cy.apiLogin(testUser); cy.apiLogin(testUser);
@ -41,7 +41,7 @@ describe('channels > App Bar', {testIsolation: true}, () => {
describe('App Bar enabled', () => { describe('App Bar enabled', () => {
beforeEach(() => { beforeEach(() => {
cy.apiUpdateConfig({ExperimentalSettings: {EnableAppBar: true}}); cy.apiUpdateConfig({ExperimentalSettings: {DisableAppBar: false}});
// # Login as testUser // # Login as testUser
cy.apiLogin(testUser); cy.apiLogin(testUser);

View File

@ -47,7 +47,7 @@ describe('channels > channel header', {testIsolation: true}, () => {
describe('App Bar enabled', () => { describe('App Bar enabled', () => {
it('webapp should hide the Playbook channel header button', () => { it('webapp should hide the Playbook channel header button', () => {
cy.apiAdminLogin(); cy.apiAdminLogin();
cy.apiUpdateConfig({ExperimentalSettings: {EnableAppBar: true}}); cy.apiUpdateConfig({ExperimentalSettings: {DisableAppBar: false}});
// # Login as testUser // # Login as testUser
cy.apiLogin(testUser); cy.apiLogin(testUser);
@ -65,7 +65,7 @@ describe('channels > channel header', {testIsolation: true}, () => {
describe('App Bar disabled', () => { describe('App Bar disabled', () => {
beforeEach(() => { beforeEach(() => {
cy.apiAdminLogin(); cy.apiAdminLogin();
cy.apiUpdateConfig({ExperimentalSettings: {EnableAppBar: false}}); cy.apiUpdateConfig({ExperimentalSettings: {DisableAppBar: true}});
// # Login as testUser // # Login as testUser
cy.apiLogin(testUser); cy.apiLogin(testUser);

View File

@ -43,7 +43,7 @@ declare namespace Cypress {
* @example * @example
* cy.apiGetBots(); * cy.apiGetBots();
*/ */
apiGetBots(page: number, perPage: number, includeDeleted: boolean): Chainable<{bots: Bot[]}>; apiGetBots(page?: number, perPage?: number, includeDeleted?: boolean): Chainable<{bots: Bot[]}>;
/** /**
* Disable bot. * Disable bot.

View File

@ -1,37 +1,117 @@
{ {
"ServiceSettings": { "ServiceSettings": {
"SiteURL": "http://localhost:8065",
"WebsocketURL": "",
"LicenseFileLocation": "",
"ListenAddress": ":8065",
"ConnectionSecurity": "",
"TLSCertFile": "",
"TLSKeyFile": "",
"TLSMinVer": "1.2",
"TLSStrictTransport": false,
"TLSStrictTransportMaxAge": 63072000,
"TLSOverwriteCiphers": [],
"UseLetsEncrypt": false,
"LetsEncryptCertificateCacheFile": "./config/letsencrypt.cache",
"Forward80To443": false,
"TrustedProxyIPHeader": [],
"ReadTimeout": 300,
"WriteTimeout": 300,
"IdleTimeout": 300,
"MaximumLoginAttempts": 10,
"GoroutineHealthThreshold": -1,
"EnableOAuthServiceProvider": false, "EnableOAuthServiceProvider": false,
"EnableIncomingWebhooks": true, "EnableIncomingWebhooks": true,
"EnableOutgoingWebhooks": true, "EnableOutgoingWebhooks": true,
"EnableCommands": true, "EnableCommands": true,
"EnablePostUsernameOverride": false, "EnablePostUsernameOverride": false,
"EnablePostIconOverride": false, "EnablePostIconOverride": false,
"GoogleDeveloperKey": "",
"EnableLinkPreviews": false, "EnableLinkPreviews": false,
"EnablePermalinkPreviews": true,
"RestrictLinkPreviews": "",
"EnableTesting": false,
"EnableDeveloper": false,
"DeveloperFlags": "",
"EnableClientPerformanceDebugging": false,
"EnableOpenTracing": false,
"EnableSecurityFixAlert": true,
"EnableInsecureOutgoingConnections": false,
"AllowedUntrustedInternalConnections": "localhost",
"EnableMultifactorAuthentication": false, "EnableMultifactorAuthentication": false,
"EnforceMultifactorAuthentication": false, "EnforceMultifactorAuthentication": false,
"EnableUserAccessTokens": false, "EnableUserAccessTokens": false,
"AllowCorsFrom": "",
"CorsExposedHeaders": "",
"CorsAllowCredentials": false,
"CorsDebug": false,
"AllowCookiesForSubdomains": false,
"ExtendSessionLengthWithActivity": true,
"SessionLengthWebInDays": 30,
"SessionLengthWebInHours": 720,
"SessionLengthMobileInDays": 30,
"SessionLengthMobileInHours": 720,
"SessionLengthSSOInDays": 30,
"SessionLengthSSOInHours": 720,
"SessionCacheInMinutes": 10,
"SessionIdleTimeoutInMinutes": 43200,
"WebsocketSecurePort": 443,
"WebsocketPort": 80,
"WebserverMode": "gzip",
"EnableGifPicker": false,
"GiphySdkKey": "s0glxvzVg9azvPipKxcPLpXV0q1x1fVP",
"EnableCustomEmoji": false, "EnableCustomEmoji": false,
"EnableEmojiPicker": true, "EnableEmojiPicker": true,
"EnableGifPicker": false,
"PostEditTimeLimit": -1, "PostEditTimeLimit": -1,
"TimeBetweenUserTypingUpdatesMilliseconds": 5000,
"EnablePostSearch": true,
"EnableFileSearch": true,
"MinimumHashtagLength": 3,
"EnableUserTypingMessages": true,
"EnableChannelViewedMessages": true,
"EnableUserStatuses": true,
"ExperimentalEnableAuthenticationTransfer": true,
"ClusterLogTimeoutMilliseconds": 2000,
"EnablePreviewFeatures": true, "EnablePreviewFeatures": true,
"EnableTutorial": true, "EnableTutorial": true,
"EnableOnboardingFlow": false, "EnableOnboardingFlow": false,
"ExperimentalEnableDefaultChannelLeaveJoinMessages": true, "ExperimentalEnableDefaultChannelLeaveJoinMessages": true,
"ExperimentalGroupUnreadChannels": "disabled", "ExperimentalGroupUnreadChannels": "disabled",
"EnableAPITeamDeletion": true, "EnableAPITeamDeletion": true,
"EnableAPITriggerAdminNotifications": false,
"EnableAPIUserDeletion": false,
"ExperimentalEnableHardenedMode": false, "ExperimentalEnableHardenedMode": false,
"ExperimentalStrictCSRFEnforcement": false,
"EnableEmailInvitations": true, "EnableEmailInvitations": true,
"DisableBotsWhenOwnerIsDeactivated": true,
"EnableBotAccountCreation": true, "EnableBotAccountCreation": true,
"EnableSVGs": true, "EnableSVGs": true,
"EnableLatex": false, "EnableLatex": false,
"EnableLegacySidebar": false, "EnableInlineLatex": true,
"PostPriority": true,
"AllowPersistentNotifications": true,
"AllowPersistentNotificationsForGuests": false,
"PersistentNotificationIntervalMinutes": 5,
"PersistentNotificationMaxCount": 6,
"PersistentNotificationMaxRecipients": 5,
"EnableAPIChannelDeletion": false,
"EnableLocalMode": false,
"LocalModeSocketLocation": "/var/tmp/mattermost_local.socket",
"EnableAWSMetering": false,
"SplitKey": "",
"FeatureFlagSyncIntervalSeconds": 30,
"DebugSplit": false,
"ThreadAutoFollow": true, "ThreadAutoFollow": true,
"CollapsedThreads": "disabled" "CollapsedThreads": "disabled",
"ManagedResourcePaths": "",
"EnableCustomGroups": true,
"SelfHostedPurchase": true,
"AllowSyncedDrafts": true
}, },
"TeamSettings": { "TeamSettings": {
"SiteName": "Mattermost", "SiteName": "Mattermost",
"MaxUsersPerTeam": 2000, "MaxUsersPerTeam": 2000,
"EnableJoinLeaveMessageByDefault": true,
"EnableUserCreation": true, "EnableUserCreation": true,
"EnableOpenServer": true, "EnableOpenServer": true,
"EnableUserDeactivation": false, "EnableUserDeactivation": false,
@ -41,6 +121,7 @@
"CustomBrandText": "", "CustomBrandText": "",
"CustomDescriptionText": "", "CustomDescriptionText": "",
"RestrictDirectMessage": "any", "RestrictDirectMessage": "any",
"EnableLastActiveTime": true,
"UserStatusAwayTimeout": 300, "UserStatusAwayTimeout": 300,
"MaxChannelsPerTeam": 2000, "MaxChannelsPerTeam": 2000,
"MaxNotificationsPerChannel": 1000, "MaxNotificationsPerChannel": 1000,
@ -52,12 +133,19 @@
"ExperimentalPrimaryTeam": "", "ExperimentalPrimaryTeam": "",
"ExperimentalDefaultChannels": [] "ExperimentalDefaultChannels": []
}, },
"ClientRequirements": {
"AndroidLatestVersion": "",
"AndroidMinVersion": "",
"IosLatestVersion": "",
"IosMinVersion": ""
},
"PasswordSettings": { "PasswordSettings": {
"MinimumLength": 5, "MinimumLength": 5,
"Lowercase": false, "Lowercase": false,
"Number": false, "Number": false,
"Uppercase": false, "Uppercase": false,
"Symbol": false "Symbol": false,
"EnableForgotLink": true
}, },
"EmailSettings": { "EmailSettings": {
"EnableSignUpWithEmail": true, "EnableSignUpWithEmail": true,
@ -67,14 +155,27 @@
"UseChannelInEmailNotifications": false, "UseChannelInEmailNotifications": false,
"RequireEmailVerification": false, "RequireEmailVerification": false,
"FeedbackName": "", "FeedbackName": "",
"FeedbackEmail": "test@example.com",
"ReplyToAddress": "test@example.com",
"FeedbackOrganization": "", "FeedbackOrganization": "",
"EnableSMTPAuth": false,
"SMTPUsername": "",
"SMTPPassword": "",
"SMTPServer": "localhost",
"SMTPPort": "10025",
"SMTPServerTimeout": 10,
"ConnectionSecurity": "",
"SendPushNotifications": true, "SendPushNotifications": true,
"PushNotificationServer": "https://push-test.mattermost.com", "PushNotificationServer": "https://push-test.mattermost.com",
"PushNotificationServerType": "custom",
"PushNotificationServerLocation": "us",
"PushNotificationContents": "generic", "PushNotificationContents": "generic",
"PushNotificationBuffer": 1000,
"EnableEmailBatching": false, "EnableEmailBatching": false,
"EmailBatchingBufferSize": 256, "EmailBatchingBufferSize": 256,
"EmailBatchingInterval": 30, "EmailBatchingInterval": 30,
"EnablePreviewModeBanner": true, "EnablePreviewModeBanner": true,
"SkipServerCertificateVerification": false,
"EmailNotificationContentsType": "full", "EmailNotificationContentsType": "full",
"LoginButtonColor": "#0000", "LoginButtonColor": "#0000",
"LoginButtonBorderColor": "#2389D7", "LoginButtonBorderColor": "#2389D7",
@ -85,6 +186,12 @@
"ShowFullName": true "ShowFullName": true
}, },
"SupportSettings": { "SupportSettings": {
"TermsOfServiceLink": "https://mattermost.com/pl/terms-of-use/",
"PrivacyPolicyLink": "https://mattermost.com/pl/privacy-policy/",
"AboutLink": "https://mattermost.com/pl/about-mattermost",
"HelpLink": "https://mattermost.com/pl/help/",
"ReportAProblemLink": "https://mattermost.com/pl/report-a-bug",
"ForgotPasswordLink": "",
"SupportEmail": "", "SupportEmail": "",
"CustomTermsOfServiceEnabled": false, "CustomTermsOfServiceEnabled": false,
"CustomTermsOfServiceReAcceptancePeriod": 365, "CustomTermsOfServiceReAcceptancePeriod": 365,
@ -97,7 +204,10 @@
"BannerTextColor": "#333333", "BannerTextColor": "#333333",
"AllowBannerDismissal": true, "AllowBannerDismissal": true,
"AdminNoticesEnabled": false, "AdminNoticesEnabled": false,
"UserNoticesEnabled": false "UserNoticesEnabled": false,
"NoticesURL": "https://notices.mattermost.com/",
"NoticesFetchFrequency": 3600,
"NoticesSkipCache": false
}, },
"ThemeSettings": { "ThemeSettings": {
"EnableThemeSelection": true, "EnableThemeSelection": true,
@ -112,7 +222,10 @@
"Scope": "", "Scope": "",
"AuthEndpoint": "", "AuthEndpoint": "",
"TokenEndpoint": "", "TokenEndpoint": "",
"UserAPIEndpoint": "" "UserAPIEndpoint": "",
"DiscoveryEndpoint": "",
"ButtonText": "",
"ButtonColor": ""
}, },
"GoogleSettings": { "GoogleSettings": {
"Enable": false, "Enable": false,
@ -121,7 +234,10 @@
"Scope": "profile email", "Scope": "profile email",
"AuthEndpoint": "https://accounts.google.com/o/oauth2/v2/auth", "AuthEndpoint": "https://accounts.google.com/o/oauth2/v2/auth",
"TokenEndpoint": "https://www.googleapis.com/oauth2/v4/token", "TokenEndpoint": "https://www.googleapis.com/oauth2/v4/token",
"UserAPIEndpoint": "https://people.googleapis.com/v1/people/me?personFields=names,emailAddresses,nicknames,metadata" "UserAPIEndpoint": "https://people.googleapis.com/v1/people/me?personFields=names,emailAddresses,nicknames,metadata",
"DiscoveryEndpoint": "",
"ButtonText": "",
"ButtonColor": ""
}, },
"Office365Settings": { "Office365Settings": {
"Enable": false, "Enable": false,
@ -131,8 +247,21 @@
"AuthEndpoint": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", "AuthEndpoint": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
"TokenEndpoint": "https://login.microsoftonline.com/common/oauth2/v2.0/token", "TokenEndpoint": "https://login.microsoftonline.com/common/oauth2/v2.0/token",
"UserAPIEndpoint": "https://graph.microsoft.com/v1.0/me", "UserAPIEndpoint": "https://graph.microsoft.com/v1.0/me",
"DiscoveryEndpoint": "",
"DirectoryId": "" "DirectoryId": ""
}, },
"OpenIdSettings": {
"Enable": false,
"Secret": "",
"Id": "",
"Scope": "profile openid email",
"AuthEndpoint": "",
"TokenEndpoint": "",
"UserAPIEndpoint": "",
"DiscoveryEndpoint": "",
"ButtonText": "",
"ButtonColor": "#145DBF"
},
"LdapSettings": { "LdapSettings": {
"Enable": true, "Enable": true,
"EnableSync": false, "EnableSync": false,
@ -160,6 +289,8 @@
"PictureAttribute": "", "PictureAttribute": "",
"SyncIntervalMinutes": 10000, "SyncIntervalMinutes": 10000,
"SkipCertificateVerification": true, "SkipCertificateVerification": true,
"PublicCertificateFile": "",
"PrivateKeyFile": "",
"QueryTimeout": 60, "QueryTimeout": 60,
"MaxPageSize": 500, "MaxPageSize": 500,
"LoginFieldName": "", "LoginFieldName": "",
@ -170,7 +301,9 @@
}, },
"ComplianceSettings": { "ComplianceSettings": {
"Enable": false, "Enable": false,
"EnableDaily": false "Directory": "./data/",
"EnableDaily": false,
"BatchSize": 30000
}, },
"LocalizationSettings": { "LocalizationSettings": {
"DefaultServerLocale": "en", "DefaultServerLocale": "en",
@ -181,12 +314,14 @@
"Enable": false, "Enable": false,
"EnableSyncWithLdap": false, "EnableSyncWithLdap": false,
"EnableSyncWithLdapIncludeAuth": false, "EnableSyncWithLdapIncludeAuth": false,
"IgnoreGuestsLdapSync": false,
"Verify": true, "Verify": true,
"Encrypt": true, "Encrypt": true,
"SignRequest": false, "SignRequest": false,
"IdpURL": "", "IdpURL": "",
"IdpDescriptorURL": "", "IdpDescriptorURL": "",
"IdpMetadataURL": "", "IdpMetadataURL": "",
"ServiceProviderIdentifier": "",
"AssertionConsumerServiceURL": "", "AssertionConsumerServiceURL": "",
"SignatureAlgorithm": "RSAwithSHA1", "SignatureAlgorithm": "RSAwithSHA1",
"CanonicalAlgorithm": "Canonical1.0", "CanonicalAlgorithm": "Canonical1.0",
@ -211,18 +346,32 @@
"LoginButtonBorderColor": "#2389D7", "LoginButtonBorderColor": "#2389D7",
"LoginButtonTextColor": "#ffffff" "LoginButtonTextColor": "#ffffff"
}, },
"NativeAppSettings": {
"AppCustomURLSchemes": ["mmauth://", "mmauthbeta://"],
"AppDownloadLink": "https://mattermost.com/pl/download-apps",
"AndroidAppDownloadLink": "https://mattermost.com/pl/android-app/",
"IosAppDownloadLink": "https://mattermost.com/pl/ios-app/"
},
"ClusterSettings": { "ClusterSettings": {
"Enable": false "Enable": false
}, },
"ExperimentalSettings": { "ExperimentalSettings": {
"RestrictSystemAdmin": true "RestrictSystemAdmin": true
}, },
"AnalyticsSettings": {
"MaxUsersForStatistics": 2500
},
"DataRetentionSettings": { "DataRetentionSettings": {
"EnableMessageDeletion": false, "EnableMessageDeletion": false,
"EnableFileDeletion": false, "EnableFileDeletion": false,
"EnableBoardsDeletion": false,
"MessageRetentionDays": 365, "MessageRetentionDays": 365,
"FileRetentionDays": 365, "FileRetentionDays": 365,
"DeletionJobStartTime": "02:00" "BoardsRetentionDays": 365,
"DeletionJobStartTime": "02:00",
"BatchSize": 3000,
"TimeBetweenBatchesMilliseconds": 100,
"RetentionIdsBatchSize": 100
}, },
"MessageExportSettings": { "MessageExportSettings": {
"EnableExport": false, "EnableExport": false,
@ -230,37 +379,51 @@
"DailyRunTime": "01:00", "DailyRunTime": "01:00",
"ExportFromTimestamp": 0, "ExportFromTimestamp": 0,
"BatchSize": 10000, "BatchSize": 10000,
"DownloadExportResults": false,
"GlobalRelaySettings": { "GlobalRelaySettings": {
"CustomerType": "A9", "CustomerType": "A9",
"SMTPUsername": "", "SMTPUsername": "",
"SMTPPassword": "", "SMTPPassword": "",
"EmailAddress": "" "EmailAddress": "",
"SMTPServerTimeout": 1800
} }
}, },
"ProductSettings": {},
"PluginSettings": { "PluginSettings": {
"Enable": true, "Enable": true,
"EnableUploads": true,
"AllowInsecureDownloadURL": false,
"EnableHealthCheck": true,
"Directory": "./plugins",
"ClientDirectory": "./client/plugins",
"Plugins": {}, "Plugins": {},
"PluginStates": { "PluginStates": {
"com.mattermost.calls": {
"Enable": false
},
"com.mattermost.nps": { "com.mattermost.nps": {
"Enable": false "Enable": false
}, },
"com.mattermost.plugin-incident-response": { "playbooks": {
"Enable": false "Enable": true
},
"com.mattermost.plugin-incident-management": {
"Enable": false
},
"focalboard": {
"Enable": false
} }
} },
"EnableMarketplace": true,
"EnableRemoteMarketplace": true,
"AutomaticPrepackagedPlugins": true,
"RequirePluginSignature": false,
"MarketplaceURL": "https://api.integrations.mattermost.com",
"SignaturePublicKeyFiles": [],
"ChimeraOAuthProxyURL": ""
}, },
"DisplaySettings": { "DisplaySettings": {
"CustomURLSchemes": [], "CustomURLSchemes": [],
"MaxMarkdownNodes": 0,
"ExperimentalTimezone": false "ExperimentalTimezone": false
}, },
"GuestAccountsSettings": { "GuestAccountsSettings": {
"Enable": true, "Enable": true,
"HideTags": false,
"AllowEmailAccounts": true, "AllowEmailAccounts": true,
"EnforceMultifactorAuthentication": false, "EnforceMultifactorAuthentication": false,
"RestrictCreationToDomains": "" "RestrictCreationToDomains": ""
@ -270,5 +433,13 @@
"ImageProxyType": "local", "ImageProxyType": "local",
"RemoteImageProxyURL": "", "RemoteImageProxyURL": "",
"RemoteImageProxyOptions": "" "RemoteImageProxyOptions": ""
},
"ImportSettings": {
"Directory": "./import",
"RetentionDays": 30
},
"ExportSettings": {
"Directory": "./export",
"RetentionDays": 30
} }
} }

View File

@ -8,7 +8,7 @@
import {ChainableT} from '../../types'; import {ChainableT} from '../../types';
function apiCreateCustomUserGroup(displayName: string, name: string, userIds: string[]): ChainableT<Cypress.Group> { function apiCreateCustomUserGroup(displayName: string, name: string, userIds: string[]): ChainableT<Cypress.Response<any>> {
return cy.request({ return cy.request({
headers: {'X-Requested-With': 'XMLHttpRequest'}, headers: {'X-Requested-With': 'XMLHttpRequest'},
url: '/api/v4/groups', url: '/api/v4/groups',

View File

@ -12,22 +12,28 @@
"TLSStrictTransportMaxAge": 63072000, "TLSStrictTransportMaxAge": 63072000,
"TLSOverwriteCiphers": [], "TLSOverwriteCiphers": [],
"UseLetsEncrypt": false, "UseLetsEncrypt": false,
"LetsEncryptCertificateCacheFile": "./config/letsencrypt.cache",
"Forward80To443": false, "Forward80To443": false,
"TrustedProxyIPHeader": [], "TrustedProxyIPHeader": [],
"ReadTimeout": 300, "ReadTimeout": 300,
"WriteTimeout": 300, "WriteTimeout": 300,
"IdleTimeout": 300, "IdleTimeout": 300,
"MaximumLoginAttempts": 10,
"GoroutineHealthThreshold": -1, "GoroutineHealthThreshold": -1,
"GoogleDeveloperKey": "",
"EnableOAuthServiceProvider": false, "EnableOAuthServiceProvider": false,
"EnableIncomingWebhooks": true, "EnableIncomingWebhooks": true,
"EnableOutgoingWebhooks": true, "EnableOutgoingWebhooks": true,
"EnableCommands": true, "EnableCommands": true,
"EnablePostUsernameOverride": false, "EnablePostUsernameOverride": false,
"EnablePostIconOverride": false, "EnablePostIconOverride": false,
"GoogleDeveloperKey": "",
"EnableLinkPreviews": false, "EnableLinkPreviews": false,
"EnablePermalinkPreviews": true,
"RestrictLinkPreviews": "",
"EnableTesting": false, "EnableTesting": false,
"EnableDeveloper": false, "EnableDeveloper": false,
"DeveloperFlags": "",
"EnableClientPerformanceDebugging": false,
"EnableOpenTracing": false, "EnableOpenTracing": false,
"EnableSecurityFixAlert": true, "EnableSecurityFixAlert": true,
"EnableInsecureOutgoingConnections": false, "EnableInsecureOutgoingConnections": false,
@ -41,20 +47,25 @@
"CorsDebug": false, "CorsDebug": false,
"AllowCookiesForSubdomains": false, "AllowCookiesForSubdomains": false,
"ExtendSessionLengthWithActivity": true, "ExtendSessionLengthWithActivity": true,
"SessionLengthWebInDays": 30,
"SessionLengthWebInHours": 720, "SessionLengthWebInHours": 720,
"SessionLengthMobileInDays": 30,
"SessionLengthMobileInHours": 720, "SessionLengthMobileInHours": 720,
"SessionLengthSSOInDays": 30,
"SessionLengthSSOInHours": 720, "SessionLengthSSOInHours": 720,
"SessionCacheInMinutes": 10, "SessionCacheInMinutes": 10,
"SessionIdleTimeoutInMinutes": 43200, "SessionIdleTimeoutInMinutes": 43200,
"WebsocketSecurePort": 443, "WebsocketSecurePort": 443,
"WebsocketPort": 80, "WebsocketPort": 80,
"WebserverMode": "gzip", "WebserverMode": "gzip",
"EnableGifPicker": false,
"GiphySdkKey": "s0glxvzVg9azvPipKxcPLpXV0q1x1fVP",
"EnableCustomEmoji": false, "EnableCustomEmoji": false,
"EnableEmojiPicker": true, "EnableEmojiPicker": true,
"EnableGifPicker": false,
"PostEditTimeLimit": -1, "PostEditTimeLimit": -1,
"TimeBetweenUserTypingUpdatesMilliseconds": 5000, "TimeBetweenUserTypingUpdatesMilliseconds": 5000,
"EnablePostSearch": true, "EnablePostSearch": true,
"EnableFileSearch": true,
"MinimumHashtagLength": 3, "MinimumHashtagLength": 3,
"EnableUserTypingMessages": true, "EnableUserTypingMessages": true,
"EnableChannelViewedMessages": true, "EnableChannelViewedMessages": true,
@ -67,6 +78,8 @@
"ExperimentalEnableDefaultChannelLeaveJoinMessages": true, "ExperimentalEnableDefaultChannelLeaveJoinMessages": true,
"ExperimentalGroupUnreadChannels": "disabled", "ExperimentalGroupUnreadChannels": "disabled",
"EnableAPITeamDeletion": true, "EnableAPITeamDeletion": true,
"EnableAPITriggerAdminNotifications": false,
"EnableAPIUserDeletion": false,
"ExperimentalEnableHardenedMode": false, "ExperimentalEnableHardenedMode": false,
"ExperimentalStrictCSRFEnforcement": false, "ExperimentalStrictCSRFEnforcement": false,
"EnableEmailInvitations": true, "EnableEmailInvitations": true,
@ -74,13 +87,31 @@
"EnableBotAccountCreation": true, "EnableBotAccountCreation": true,
"EnableSVGs": true, "EnableSVGs": true,
"EnableLatex": false, "EnableLatex": false,
"EnableLegacySidebar": false, "EnableInlineLatex": true,
"PostPriority": true,
"AllowPersistentNotifications": true,
"AllowPersistentNotificationsForGuests": false,
"PersistentNotificationIntervalMinutes": 5,
"PersistentNotificationMaxCount": 6,
"PersistentNotificationMaxRecipients": 5,
"EnableAPIChannelDeletion": false,
"EnableLocalMode": false,
"LocalModeSocketLocation": "/var/tmp/mattermost_local.socket",
"EnableAWSMetering": false,
"SplitKey": "",
"FeatureFlagSyncIntervalSeconds": 30,
"DebugSplit": false,
"ThreadAutoFollow": true, "ThreadAutoFollow": true,
"CollapsedThreads": "disabled" "CollapsedThreads": "disabled",
"ManagedResourcePaths": "",
"EnableCustomGroups": true,
"SelfHostedPurchase": true,
"AllowSyncedDrafts": true
}, },
"TeamSettings": { "TeamSettings": {
"SiteName": "Mattermost", "SiteName": "Mattermost",
"MaxUsersPerTeam": 2000, "MaxUsersPerTeam": 2000,
"EnableJoinLeaveMessageByDefault": true,
"EnableUserCreation": true, "EnableUserCreation": true,
"EnableOpenServer": true, "EnableOpenServer": true,
"EnableUserDeactivation": false, "EnableUserDeactivation": false,
@ -90,6 +121,7 @@
"CustomBrandText": "", "CustomBrandText": "",
"CustomDescriptionText": "", "CustomDescriptionText": "",
"RestrictDirectMessage": "any", "RestrictDirectMessage": "any",
"EnableLastActiveTime": true,
"UserStatusAwayTimeout": 300, "UserStatusAwayTimeout": 300,
"MaxChannelsPerTeam": 2000, "MaxChannelsPerTeam": 2000,
"MaxNotificationsPerChannel": 1000, "MaxNotificationsPerChannel": 1000,
@ -108,26 +140,37 @@
"IosMinVersion": "" "IosMinVersion": ""
}, },
"SqlSettings": { "SqlSettings": {
"DriverName": "postgres",
"DataSource": "postgres://mmuser:mostest@localhost/mattermost_test?sslmode=disable\u0026connect_timeout=10\u0026binary_parameters=yes",
"DataSourceReplicas": [], "DataSourceReplicas": [],
"DataSourceSearchReplicas": [], "DataSourceSearchReplicas": [],
"MaxIdleConns": 20, "MaxIdleConns": 20,
"ConnMaxLifetimeMilliseconds": 3600000, "ConnMaxLifetimeMilliseconds": 3600000,
"ConnMaxIdleTimeMilliseconds": 300000,
"MaxOpenConns": 300, "MaxOpenConns": 300,
"Trace": false, "Trace": false,
"AtRestEncryptKey": "", "AtRestEncryptKey": "",
"QueryTimeout": 30 "QueryTimeout": 30,
"DisableDatabaseSearch": false,
"MigrationsStatementTimeoutSeconds": 100000,
"ReplicaLagSettings": [],
"ReplicaMonitorIntervalSeconds": 5
}, },
"LogSettings": { "LogSettings": {
"EnableConsole": true, "EnableConsole": true,
"ConsoleLevel": "DEBUG", "ConsoleLevel": "DEBUG",
"ConsoleJson": true, "ConsoleJson": true,
"EnableColor": false,
"EnableFile": true, "EnableFile": true,
"FileLevel": "INFO", "FileLevel": "INFO",
"FileJson": true, "FileJson": true,
"FileLocation": "", "FileLocation": "",
"EnableWebhookDebugging": true, "EnableWebhookDebugging": true,
"EnableDiagnostics": true, "EnableDiagnostics": true,
"EnableSentry": false "VerboseDiagnostics": false,
"EnableSentry": false,
"AdvancedLoggingJSON": {},
"AdvancedLoggingConfig": ""
}, },
"ExperimentalAuditSettings": { "ExperimentalAuditSettings": {
"FileEnabled": false, "FileEnabled": false,
@ -136,16 +179,21 @@
"FileMaxAgeDays": 0, "FileMaxAgeDays": 0,
"FileMaxBackups": 0, "FileMaxBackups": 0,
"FileCompress": false, "FileCompress": false,
"FileMaxQueueSize": 1000 "FileMaxQueueSize": 1000,
"AdvancedLoggingJSON": {},
"AdvancedLoggingConfig": ""
}, },
"NotificationLogSettings": { "NotificationLogSettings": {
"EnableConsole": true, "EnableConsole": true,
"ConsoleLevel": "DEBUG", "ConsoleLevel": "DEBUG",
"ConsoleJson": true, "ConsoleJson": true,
"EnableColor": false,
"EnableFile": true, "EnableFile": true,
"FileLevel": "INFO", "FileLevel": "INFO",
"FileJson": true, "FileJson": true,
"FileLocation": "" "FileLocation": "",
"AdvancedLoggingJSON": {},
"AdvancedLoggingConfig": ""
}, },
"PasswordSettings": { "PasswordSettings": {
"MinimumLength": 5, "MinimumLength": 5,
@ -153,27 +201,48 @@
"Number": false, "Number": false,
"Uppercase": false, "Uppercase": false,
"Symbol": false, "Symbol": false,
"Enable": false "EnableForgotLink": true
}, },
"FileSettings": { "FileSettings": {
"EnableFileAttachments": true, "EnableFileAttachments": true,
"EnableMobileUpload": true, "EnableMobileUpload": true,
"EnableMobileDownload": true, "EnableMobileDownload": true,
"MaxFileSize": 104857600, "MaxFileSize": 104857600,
"MaxImageResolution": 33177600,
"MaxImageDecoderConcurrency": -1,
"DriverName": "local", "DriverName": "local",
"Directory": "./data/", "Directory": "./data/",
"EnablePublicLink": false, "EnablePublicLink": false,
"ExtractContent": true,
"ArchiveRecursion": false,
"PublicLinkSalt": "", "PublicLinkSalt": "",
"InitialFont": "nunito-bold.ttf", "InitialFont": "nunito-bold.ttf",
"AmazonS3AccessKeyId": "", "AmazonS3AccessKeyId": "",
"AmazonS3SecretAccessKey": "", "AmazonS3SecretAccessKey": "",
"AmazonS3Bucket": "", "AmazonS3Bucket": "",
"AmazonS3PathPrefix": "",
"AmazonS3Region": "", "AmazonS3Region": "",
"AmazonS3Endpoint": "s3.amazonaws.com", "AmazonS3Endpoint": "s3.amazonaws.com",
"AmazonS3SSL": true, "AmazonS3SSL": true,
"AmazonS3SignV2": false, "AmazonS3SignV2": false,
"AmazonS3SSE": false, "AmazonS3SSE": false,
"AmazonS3Trace": false "AmazonS3Trace": false,
"AmazonS3RequestTimeoutMilliseconds": 30000,
"DedicatedExportStore": false,
"ExportDriverName": "local",
"ExportDirectory": "./data/",
"ExportAmazonS3AccessKeyId": "",
"ExportAmazonS3SecretAccessKey": "",
"ExportAmazonS3Bucket": "",
"ExportAmazonS3PathPrefix": "",
"ExportAmazonS3Region": "",
"ExportAmazonS3Endpoint": "s3.amazonaws.com",
"ExportAmazonS3SSL": true,
"ExportAmazonS3SignV2": false,
"ExportAmazonS3SSE": false,
"ExportAmazonS3Trace": false,
"ExportAmazonS3RequestTimeoutMilliseconds": 30000,
"ExportAmazonS3PresignExpiresSeconds": 21600
}, },
"EmailSettings": { "EmailSettings": {
"EnableSignUpWithEmail": true, "EnableSignUpWithEmail": true,
@ -195,7 +264,10 @@
"ConnectionSecurity": "", "ConnectionSecurity": "",
"SendPushNotifications": true, "SendPushNotifications": true,
"PushNotificationServer": "https://push-test.mattermost.com", "PushNotificationServer": "https://push-test.mattermost.com",
"PushNotificationServerType": "custom",
"PushNotificationServerLocation": "us",
"PushNotificationContents": "generic", "PushNotificationContents": "generic",
"PushNotificationBuffer": 1000,
"EnableEmailBatching": false, "EnableEmailBatching": false,
"EmailBatchingBufferSize": 256, "EmailBatchingBufferSize": 256,
"EmailBatchingInterval": 30, "EmailBatchingInterval": 30,
@ -222,9 +294,10 @@
"SupportSettings": { "SupportSettings": {
"TermsOfServiceLink": "https://mattermost.com/pl/terms-of-use/", "TermsOfServiceLink": "https://mattermost.com/pl/terms-of-use/",
"PrivacyPolicyLink": "https://mattermost.com/pl/privacy-policy/", "PrivacyPolicyLink": "https://mattermost.com/pl/privacy-policy/",
"AboutLink": "https://docs.mattermost.com/pl/about-mattermost", "AboutLink": "https://mattermost.com/pl/about-mattermost",
"HelpLink": "https://mattermost.com/pl/help/", "HelpLink": "https://mattermost.com/pl/help/",
"ReportAProblemLink": "https://mattermost.com/pl/report-a-bug", "ReportAProblemLink": "https://mattermost.com/pl/report-a-bug",
"ForgotPasswordLink": "",
"SupportEmail": "", "SupportEmail": "",
"CustomTermsOfServiceEnabled": false, "CustomTermsOfServiceEnabled": false,
"CustomTermsOfServiceReAcceptancePeriod": 365, "CustomTermsOfServiceReAcceptancePeriod": 365,
@ -237,7 +310,10 @@
"BannerTextColor": "#333333", "BannerTextColor": "#333333",
"AllowBannerDismissal": true, "AllowBannerDismissal": true,
"AdminNoticesEnabled": false, "AdminNoticesEnabled": false,
"UserNoticesEnabled": false "UserNoticesEnabled": false,
"NoticesURL": "https://notices.mattermost.com/",
"NoticesFetchFrequency": 3600,
"NoticesSkipCache": false
}, },
"ThemeSettings": { "ThemeSettings": {
"EnableThemeSelection": true, "EnableThemeSelection": true,
@ -252,7 +328,10 @@
"Scope": "", "Scope": "",
"AuthEndpoint": "", "AuthEndpoint": "",
"TokenEndpoint": "", "TokenEndpoint": "",
"UserAPIEndpoint": "" "UserAPIEndpoint": "",
"DiscoveryEndpoint": "",
"ButtonText": "",
"ButtonColor": ""
}, },
"GoogleSettings": { "GoogleSettings": {
"Enable": false, "Enable": false,
@ -261,7 +340,10 @@
"Scope": "profile email", "Scope": "profile email",
"AuthEndpoint": "https://accounts.google.com/o/oauth2/v2/auth", "AuthEndpoint": "https://accounts.google.com/o/oauth2/v2/auth",
"TokenEndpoint": "https://www.googleapis.com/oauth2/v4/token", "TokenEndpoint": "https://www.googleapis.com/oauth2/v4/token",
"UserAPIEndpoint": "https://people.googleapis.com/v1/people/me?personFields=names,emailAddresses,nicknames,metadata" "UserAPIEndpoint": "https://people.googleapis.com/v1/people/me?personFields=names,emailAddresses,nicknames,metadata",
"DiscoveryEndpoint": "",
"ButtonText": "",
"ButtonColor": ""
}, },
"Office365Settings": { "Office365Settings": {
"Enable": false, "Enable": false,
@ -271,8 +353,21 @@
"AuthEndpoint": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", "AuthEndpoint": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
"TokenEndpoint": "https://login.microsoftonline.com/common/oauth2/v2.0/token", "TokenEndpoint": "https://login.microsoftonline.com/common/oauth2/v2.0/token",
"UserAPIEndpoint": "https://graph.microsoft.com/v1.0/me", "UserAPIEndpoint": "https://graph.microsoft.com/v1.0/me",
"DiscoveryEndpoint": "",
"DirectoryId": "" "DirectoryId": ""
}, },
"OpenIdSettings": {
"Enable": false,
"Secret": "",
"Id": "",
"Scope": "profile openid email",
"AuthEndpoint": "",
"TokenEndpoint": "",
"UserAPIEndpoint": "",
"DiscoveryEndpoint": "",
"ButtonText": "",
"ButtonColor": "#145DBF"
},
"LdapSettings": { "LdapSettings": {
"Enable": true, "Enable": true,
"EnableSync": false, "EnableSync": false,
@ -300,6 +395,8 @@
"PictureAttribute": "", "PictureAttribute": "",
"SyncIntervalMinutes": 10000, "SyncIntervalMinutes": 10000,
"SkipCertificateVerification": true, "SkipCertificateVerification": true,
"PublicCertificateFile": "",
"PrivateKeyFile": "",
"QueryTimeout": 60, "QueryTimeout": 60,
"MaxPageSize": 500, "MaxPageSize": 500,
"LoginFieldName": "", "LoginFieldName": "",
@ -311,7 +408,8 @@
"ComplianceSettings": { "ComplianceSettings": {
"Enable": false, "Enable": false,
"Directory": "./data/", "Directory": "./data/",
"EnableDaily": false "EnableDaily": false,
"BatchSize": 30000
}, },
"LocalizationSettings": { "LocalizationSettings": {
"DefaultServerLocale": "en", "DefaultServerLocale": "en",
@ -322,12 +420,14 @@
"Enable": false, "Enable": false,
"EnableSyncWithLdap": false, "EnableSyncWithLdap": false,
"EnableSyncWithLdapIncludeAuth": false, "EnableSyncWithLdapIncludeAuth": false,
"IgnoreGuestsLdapSync": false,
"Verify": true, "Verify": true,
"Encrypt": true, "Encrypt": true,
"SignRequest": false, "SignRequest": false,
"IdpURL": "", "IdpURL": "",
"IdpDescriptorURL": "", "IdpDescriptorURL": "",
"IdpMetadataURL": "", "IdpMetadataURL": "",
"ServiceProviderIdentifier": "",
"AssertionConsumerServiceURL": "", "AssertionConsumerServiceURL": "",
"SignatureAlgorithm": "RSAwithSHA1", "SignatureAlgorithm": "RSAwithSHA1",
"CanonicalAlgorithm": "Canonical1.0", "CanonicalAlgorithm": "Canonical1.0",
@ -353,10 +453,28 @@
"LoginButtonTextColor": "#ffffff" "LoginButtonTextColor": "#ffffff"
}, },
"NativeAppSettings": { "NativeAppSettings": {
"AppCustomURLSchemes": ["mmauth://", "mmauthbeta://"],
"AppDownloadLink": "https://mattermost.com/pl/download-apps", "AppDownloadLink": "https://mattermost.com/pl/download-apps",
"AndroidAppDownloadLink": "https://mattermost.com/pl/android-app/", "AndroidAppDownloadLink": "https://mattermost.com/pl/android-app/",
"IosAppDownloadLink": "https://mattermost.com/pl/ios-app/" "IosAppDownloadLink": "https://mattermost.com/pl/ios-app/"
}, },
"ClusterSettings": {
"Enable": false,
"ClusterName": "",
"OverrideHostname": "",
"NetworkInterface": "",
"BindAddress": "",
"AdvertiseAddress": "",
"UseIPAddress": true,
"EnableGossipCompression": true,
"EnableExperimentalGossipEncryption": false,
"ReadOnlyConfig": true,
"GossipPort": 8074,
"StreamingPort": 8075,
"MaxIdleConns": 100,
"MaxIdleConnsPerHost": 128,
"IdleConnTimeoutMilliseconds": 90000
},
"MetricsSettings": { "MetricsSettings": {
"Enable": false, "Enable": false,
"BlockProfileRate": 0, "BlockProfileRate": 0,
@ -368,7 +486,11 @@
"LinkMetadataTimeoutMilliseconds": 5000, "LinkMetadataTimeoutMilliseconds": 5000,
"RestrictSystemAdmin": false, "RestrictSystemAdmin": false,
"UseNewSAMLLibrary": false, "UseNewSAMLLibrary": false,
"DisableAppBar": false "EnableSharedChannels": false,
"EnableRemoteClusterService": false,
"DisableAppBar": false,
"DisableRefetchingOnBrowserFocus": false,
"DelayChannelAutocomplete": false
}, },
"AnalyticsSettings": { "AnalyticsSettings": {
"MaxUsersForStatistics": 2500 "MaxUsersForStatistics": 2500
@ -391,17 +513,33 @@
"PostsAggregatorJobStartTime": "03:00", "PostsAggregatorJobStartTime": "03:00",
"IndexPrefix": "", "IndexPrefix": "",
"LiveIndexingBatchSize": 1, "LiveIndexingBatchSize": 1,
"BulkIndexingTimeWindowSeconds": 3600, "BatchSize": 10000,
"RequestTimeoutSeconds": 30, "RequestTimeoutSeconds": 30,
"SkipTLSVerification": false, "SkipTLSVerification": false,
"Trace": "" "CA": "",
"ClientCert": "",
"ClientKey": "",
"Trace": "",
"IgnoredPurgeIndexes": ""
},
"BleveSettings": {
"IndexDir": "",
"EnableIndexing": false,
"EnableSearching": false,
"EnableAutocomplete": false,
"BatchSize": 10000
}, },
"DataRetentionSettings": { "DataRetentionSettings": {
"EnableMessageDeletion": false, "EnableMessageDeletion": false,
"EnableFileDeletion": false, "EnableFileDeletion": false,
"EnableBoardsDeletion": false,
"MessageRetentionDays": 365, "MessageRetentionDays": 365,
"FileRetentionDays": 365, "FileRetentionDays": 365,
"DeletionJobStartTime": "02:00" "BoardsRetentionDays": 365,
"DeletionJobStartTime": "02:00",
"BatchSize": 3000,
"TimeBetweenBatchesMilliseconds": 100,
"RetentionIdsBatchSize": 100
}, },
"MessageExportSettings": { "MessageExportSettings": {
"EnableExport": false, "EnableExport": false,
@ -409,17 +547,22 @@
"DailyRunTime": "01:00", "DailyRunTime": "01:00",
"ExportFromTimestamp": 0, "ExportFromTimestamp": 0,
"BatchSize": 10000, "BatchSize": 10000,
"DownloadExportResults": false,
"GlobalRelaySettings": { "GlobalRelaySettings": {
"CustomerType": "A9", "CustomerType": "A9",
"SMTPUsername": "", "SMTPUsername": "",
"SMTPPassword": "", "SMTPPassword": "",
"EmailAddress": "" "EmailAddress": "",
"SMTPServerTimeout": 1800
} }
}, },
"JobSettings": { "JobSettings": {
"RunJobs": true, "RunJobs": true,
"RunScheduler": true "RunScheduler": true,
"CleanupJobsThresholdDays": -1,
"CleanupConfigThresholdDays": -1
}, },
"ProductSettings": {},
"PluginSettings": { "PluginSettings": {
"Enable": true, "Enable": true,
"EnableUploads": true, "EnableUploads": true,
@ -429,17 +572,14 @@
"ClientDirectory": "./client/plugins", "ClientDirectory": "./client/plugins",
"Plugins": {}, "Plugins": {},
"PluginStates": { "PluginStates": {
"com.mattermost.calls": {
"Enable": false
},
"com.mattermost.nps": { "com.mattermost.nps": {
"Enable": false "Enable": false
}, },
"com.mattermost.plugin-incident-response": { "playbooks": {
"Enable": false "Enable": true
},
"com.mattermost.plugin-incident-management": {
"Enable": false
},
"focalboard": {
"Enable": false
} }
}, },
"EnableMarketplace": true, "EnableMarketplace": true,
@ -447,14 +587,17 @@
"AutomaticPrepackagedPlugins": true, "AutomaticPrepackagedPlugins": true,
"RequirePluginSignature": false, "RequirePluginSignature": false,
"MarketplaceURL": "https://api.integrations.mattermost.com", "MarketplaceURL": "https://api.integrations.mattermost.com",
"SignaturePublicKeyFiles": [] "SignaturePublicKeyFiles": [],
"ChimeraOAuthProxyURL": ""
}, },
"DisplaySettings": { "DisplaySettings": {
"CustomURLSchemes": [], "CustomURLSchemes": [],
"MaxMarkdownNodes": 0,
"ExperimentalTimezone": false "ExperimentalTimezone": false
}, },
"GuestAccountsSettings": { "GuestAccountsSettings": {
"Enable": true, "Enable": true,
"HideTags": false,
"AllowEmailAccounts": true, "AllowEmailAccounts": true,
"EnforceMultifactorAuthentication": false, "EnforceMultifactorAuthentication": false,
"RestrictCreationToDomains": "" "RestrictCreationToDomains": ""
@ -464,5 +607,13 @@
"ImageProxyType": "local", "ImageProxyType": "local",
"RemoteImageProxyURL": "", "RemoteImageProxyURL": "",
"RemoteImageProxyOptions": "" "RemoteImageProxyOptions": ""
},
"ImportSettings": {
"Directory": "./import",
"RetentionDays": 30
},
"ExportSettings": {
"Directory": "./export",
"RetentionDays": 30
} }
} }