Adds ConnectedWorkspacesSettings configuration block (#27820)
* Adds ServerFederationSettings configuration block The Server Federation related configuration properties were located in the `ExperimentalSettings` config block. Now that the feature is going to get out of beta, and foreseeing more configuration properties being added to it, we're moving them to a block of its own. If the properties were set in the old location, their values should be carried over to the new ones. The old properties are left in place and marked as deprecated not to cause issues with the model. * Update System Console to include Server Federation section * Remove system console section * Move the configuration properties to ConnectedWorkspaces * Add ConnectedWorkspacesSettings to the telemetry --------- Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
0c585bdac6
Коммит
d5e9aa9fb3
@@ -1068,8 +1068,8 @@ type ExperimentalSettings struct {
|
||||
ClientSideCertCheck *string `access:"experimental_features,cloud_restrictable"`
|
||||
LinkMetadataTimeoutMilliseconds *int64 `access:"experimental_features,write_restrictable,cloud_restrictable"`
|
||||
RestrictSystemAdmin *bool `access:"experimental_features,write_restrictable"`
|
||||
EnableSharedChannels *bool `access:"experimental_features"`
|
||||
EnableRemoteClusterService *bool `access:"experimental_features"`
|
||||
EnableSharedChannels *bool `access:"experimental_features"` // Deprecated: use `ConnectedWorkspacesSettings.EnableSharedChannels`
|
||||
EnableRemoteClusterService *bool `access:"experimental_features"` // Deprecated: use `ConnectedWorkspacesSettings.EnableRemoteClusterService`
|
||||
DisableAppBar *bool `access:"experimental_features"`
|
||||
DisableRefetchingOnBrowserFocus *bool `access:"experimental_features"`
|
||||
DelayChannelAutocomplete *bool `access:"experimental_features"`
|
||||
@@ -3242,6 +3242,29 @@ func (w *WranglerSettings) IsValid() *AppError {
|
||||
return nil
|
||||
}
|
||||
|
||||
type ConnectedWorkspacesSettings struct {
|
||||
EnableSharedChannels *bool
|
||||
EnableRemoteClusterService *bool
|
||||
}
|
||||
|
||||
func (c *ConnectedWorkspacesSettings) SetDefaults(isUpdate bool, e ExperimentalSettings) {
|
||||
if c.EnableSharedChannels == nil {
|
||||
if isUpdate && e.EnableSharedChannels != nil {
|
||||
c.EnableSharedChannels = e.EnableSharedChannels
|
||||
} else {
|
||||
c.EnableSharedChannels = NewPointer(false)
|
||||
}
|
||||
}
|
||||
|
||||
if c.EnableRemoteClusterService == nil {
|
||||
if isUpdate && e.EnableRemoteClusterService != nil {
|
||||
c.EnableRemoteClusterService = e.EnableRemoteClusterService
|
||||
} else {
|
||||
c.EnableRemoteClusterService = NewPointer(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
type GlobalRelayMessageExportSettings struct {
|
||||
CustomerType *string `access:"compliance_compliance_export"` // must be either A9, A10 or CUSTOM, dictates SMTP server url
|
||||
SMTPUsername *string `access:"compliance_compliance_export"`
|
||||
@@ -3497,49 +3520,50 @@ const ConfigAccessTagAnySysConsoleRead = "*_read"
|
||||
// Product bool `access:write_restrictable`
|
||||
// }
|
||||
type Config struct {
|
||||
ServiceSettings ServiceSettings
|
||||
TeamSettings TeamSettings
|
||||
ClientRequirements ClientRequirements
|
||||
SqlSettings SqlSettings
|
||||
LogSettings LogSettings
|
||||
ExperimentalAuditSettings ExperimentalAuditSettings
|
||||
NotificationLogSettings NotificationLogSettings
|
||||
PasswordSettings PasswordSettings
|
||||
FileSettings FileSettings
|
||||
EmailSettings EmailSettings
|
||||
RateLimitSettings RateLimitSettings
|
||||
PrivacySettings PrivacySettings
|
||||
SupportSettings SupportSettings
|
||||
AnnouncementSettings AnnouncementSettings
|
||||
ThemeSettings ThemeSettings
|
||||
GitLabSettings SSOSettings
|
||||
GoogleSettings SSOSettings
|
||||
Office365Settings Office365Settings
|
||||
OpenIdSettings SSOSettings
|
||||
LdapSettings LdapSettings
|
||||
ComplianceSettings ComplianceSettings
|
||||
LocalizationSettings LocalizationSettings
|
||||
SamlSettings SamlSettings
|
||||
NativeAppSettings NativeAppSettings
|
||||
CacheSettings CacheSettings
|
||||
ClusterSettings ClusterSettings
|
||||
MetricsSettings MetricsSettings
|
||||
ExperimentalSettings ExperimentalSettings
|
||||
AnalyticsSettings AnalyticsSettings
|
||||
ElasticsearchSettings ElasticsearchSettings
|
||||
BleveSettings BleveSettings
|
||||
DataRetentionSettings DataRetentionSettings
|
||||
MessageExportSettings MessageExportSettings
|
||||
JobSettings JobSettings
|
||||
PluginSettings PluginSettings
|
||||
DisplaySettings DisplaySettings
|
||||
GuestAccountsSettings GuestAccountsSettings
|
||||
ImageProxySettings ImageProxySettings
|
||||
CloudSettings CloudSettings // telemetry: none
|
||||
FeatureFlags *FeatureFlags `access:"*_read" json:",omitempty"`
|
||||
ImportSettings ImportSettings // telemetry: none
|
||||
ExportSettings ExportSettings
|
||||
WranglerSettings WranglerSettings
|
||||
ServiceSettings ServiceSettings
|
||||
TeamSettings TeamSettings
|
||||
ClientRequirements ClientRequirements
|
||||
SqlSettings SqlSettings
|
||||
LogSettings LogSettings
|
||||
ExperimentalAuditSettings ExperimentalAuditSettings
|
||||
NotificationLogSettings NotificationLogSettings
|
||||
PasswordSettings PasswordSettings
|
||||
FileSettings FileSettings
|
||||
EmailSettings EmailSettings
|
||||
RateLimitSettings RateLimitSettings
|
||||
PrivacySettings PrivacySettings
|
||||
SupportSettings SupportSettings
|
||||
AnnouncementSettings AnnouncementSettings
|
||||
ThemeSettings ThemeSettings
|
||||
GitLabSettings SSOSettings
|
||||
GoogleSettings SSOSettings
|
||||
Office365Settings Office365Settings
|
||||
OpenIdSettings SSOSettings
|
||||
LdapSettings LdapSettings
|
||||
ComplianceSettings ComplianceSettings
|
||||
LocalizationSettings LocalizationSettings
|
||||
SamlSettings SamlSettings
|
||||
NativeAppSettings NativeAppSettings
|
||||
CacheSettings CacheSettings
|
||||
ClusterSettings ClusterSettings
|
||||
MetricsSettings MetricsSettings
|
||||
ExperimentalSettings ExperimentalSettings
|
||||
AnalyticsSettings AnalyticsSettings
|
||||
ElasticsearchSettings ElasticsearchSettings
|
||||
BleveSettings BleveSettings
|
||||
DataRetentionSettings DataRetentionSettings
|
||||
MessageExportSettings MessageExportSettings
|
||||
JobSettings JobSettings
|
||||
PluginSettings PluginSettings
|
||||
DisplaySettings DisplaySettings
|
||||
GuestAccountsSettings GuestAccountsSettings
|
||||
ImageProxySettings ImageProxySettings
|
||||
CloudSettings CloudSettings // telemetry: none
|
||||
FeatureFlags *FeatureFlags `access:"*_read" json:",omitempty"`
|
||||
ImportSettings ImportSettings // telemetry: none
|
||||
ExportSettings ExportSettings
|
||||
WranglerSettings WranglerSettings
|
||||
ConnectedWorkspacesSettings ConnectedWorkspacesSettings
|
||||
}
|
||||
|
||||
func (o *Config) Auditable() map[string]interface{} {
|
||||
@@ -3656,6 +3680,7 @@ func (o *Config) SetDefaults() {
|
||||
o.ImportSettings.SetDefaults()
|
||||
o.ExportSettings.SetDefaults()
|
||||
o.WranglerSettings.SetDefaults()
|
||||
o.ConnectedWorkspacesSettings.SetDefaults(isUpdate, o.ExperimentalSettings)
|
||||
}
|
||||
|
||||
func (o *Config) IsValid() *AppError {
|
||||
|
||||
@@ -1761,3 +1761,37 @@ func TestConfigGetFileRetentionHours(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigDefaultConnectedWorkspacesSettings(t *testing.T) {
|
||||
t.Run("if the config is new, default values should be established", func(t *testing.T) {
|
||||
c := Config{}
|
||||
c.SetDefaults()
|
||||
require.False(t, *c.ConnectedWorkspacesSettings.EnableSharedChannels)
|
||||
require.False(t, *c.ConnectedWorkspacesSettings.EnableRemoteClusterService)
|
||||
})
|
||||
|
||||
t.Run("if the config is being updated and server federation settings had no values, experimental settings values should be migrated", func(t *testing.T) {
|
||||
c := Config{}
|
||||
c.SetDefaults()
|
||||
c.ConnectedWorkspacesSettings = ConnectedWorkspacesSettings{}
|
||||
c.ExperimentalSettings.EnableSharedChannels = NewPointer(true)
|
||||
c.ExperimentalSettings.EnableRemoteClusterService = NewPointer(false)
|
||||
|
||||
c.SetDefaults()
|
||||
require.True(t, *c.ConnectedWorkspacesSettings.EnableSharedChannels)
|
||||
require.False(t, *c.ConnectedWorkspacesSettings.EnableRemoteClusterService)
|
||||
})
|
||||
|
||||
t.Run("if the config is being updated and server federation settings already have values, they should not change", func(t *testing.T) {
|
||||
c := Config{}
|
||||
c.SetDefaults()
|
||||
c.ConnectedWorkspacesSettings.EnableSharedChannels = NewPointer(false)
|
||||
c.ConnectedWorkspacesSettings.EnableRemoteClusterService = NewPointer(true)
|
||||
c.ExperimentalSettings.EnableSharedChannels = NewPointer(true)
|
||||
c.ExperimentalSettings.EnableRemoteClusterService = NewPointer(false)
|
||||
|
||||
c.SetDefaults()
|
||||
require.False(t, *c.ConnectedWorkspacesSettings.EnableSharedChannels)
|
||||
require.True(t, *c.ConnectedWorkspacesSettings.EnableRemoteClusterService)
|
||||
})
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user