Merge branch 'master' into 14715-keepprox-config
[arvados.git] / lib / config / export.go
index 3c485e2b42c471053d15f3d97b20e3b72661855c..6eb4fbe5f570d4abf9ffd885f1ab0d822acf7fa2 100644 (file)
@@ -26,6 +26,10 @@ func ExportJSON(w io.Writer, cluster *arvados.Cluster) error {
        if err != nil {
                return err
        }
+
+       // ClusterID is not marshalled by default (see `json:"-"`).
+       // Add it back here so it is included in the exported config.
+       m["ClusterID"] = cluster.ClusterID
        err = redactUnsafe(m, "", "")
        if err != nil {
                return err
@@ -55,143 +59,128 @@ func ExportJSON(w io.Writer, cluster *arvados.Cluster) error {
 // exists.
 var whitelist = map[string]bool{
        // | sort -t'"' -k2,2
-       "API":                                             true,
-       "API.AsyncPermissionsUpdateInterval":              true,
-       "API.DisabledAPIs":                                true,
-       "API.MaxIndexDatabaseRead":                        true,
-       "API.MaxItemsPerResponse":                         true,
-       "API.MaxRequestAmplification":                     true,
-       "API.MaxRequestSize":                              true,
-       "API.RailsSessionSecretToken":                     false,
-       "API.RequestTimeout":                              true,
-       "AuditLogs":                                       true,
-       "AuditLogs.MaxAge":                                true,
-       "AuditLogs.MaxDeleteBatch":                        true,
-       "AuditLogs.UnloggedAttributes":                    true,
-       "Collections":                                     true,
-       "Collections.BlobSigning":                         true,
-       "Collections.BlobSigningKey":                      false,
-       "Collections.BlobSigningTTL":                      true,
-       "Collections.CollectionVersioning":                true,
-       "Collections.DefaultReplication":                  true,
-       "Collections.DefaultTrashLifetime":                true,
-       "Collections.PreserveVersionIfIdle":               true,
-       "Collections.TrashSweepInterval":                  true,
-       "Containers":                                      true,
-       "Containers.CloudVMs":                             true,
-       "Containers.CloudVMs.BootProbeCommand":            true,
-       "Containers.CloudVMs.Driver":                      true,
-       "Containers.CloudVMs.DriverParameters":            false,
-       "Containers.CloudVMs.Enable":                      true,
-       "Containers.CloudVMs.ImageID":                     true,
-       "Containers.CloudVMs.MaxCloudOpsPerSecond":        true,
-       "Containers.CloudVMs.MaxProbesPerSecond":          true,
-       "Containers.CloudVMs.PollInterval":                true,
-       "Containers.CloudVMs.ProbeInterval":               true,
-       "Containers.CloudVMs.ResourceTags":                true,
-       "Containers.CloudVMs.ResourceTags.*":              true,
-       "Containers.CloudVMs.SSHPort":                     true,
-       "Containers.CloudVMs.SyncInterval":                true,
-       "Containers.CloudVMs.TagKeyPrefix":                true,
-       "Containers.CloudVMs.TimeoutBooting":              true,
-       "Containers.CloudVMs.TimeoutIdle":                 true,
-       "Containers.CloudVMs.TimeoutProbe":                true,
-       "Containers.CloudVMs.TimeoutShutdown":             true,
-       "Containers.CloudVMs.TimeoutSignal":               true,
-       "Containers.CloudVMs.TimeoutTERM":                 true,
-       "Containers.DefaultKeepCacheRAM":                  true,
-       "Containers.DispatchPrivateKey":                   true,
-       "Containers.JobsAPI":                              true,
-       "Containers.JobsAPI.CrunchJobUser":                true,
-       "Containers.JobsAPI.CrunchJobWrapper":             true,
-       "Containers.JobsAPI.CrunchRefreshTrigger":         true,
-       "Containers.JobsAPI.DefaultDockerImage":           true,
-       "Containers.JobsAPI.Enable":                       true,
-       "Containers.JobsAPI.GitInternalDir":               true,
-       "Containers.JobsAPI.ReuseJobIfOutputsDiffer":      true,
-       "Containers.Logging":                              true,
-       "Containers.Logging.LimitLogBytesPerJob":          true,
-       "Containers.Logging.LogBytesPerEvent":             true,
-       "Containers.Logging.LogPartialLineThrottlePeriod": true,
-       "Containers.Logging.LogSecondsBetweenEvents":      true,
-       "Containers.Logging.LogThrottleBytes":             true,
-       "Containers.Logging.LogThrottleLines":             true,
-       "Containers.Logging.LogThrottlePeriod":            true,
-       "Containers.Logging.LogUpdatePeriod":              true,
-       "Containers.Logging.LogUpdateSize":                true,
-       "Containers.Logging.MaxAge":                       true,
-       "Containers.LogReuseDecisions":                    true,
-       "Containers.MaxComputeVMs":                        true,
-       "Containers.MaxDispatchAttempts":                  true,
-       "Containers.MaxRetryAttempts":                     true,
-       "Containers.SLURM":                                true,
-       "Containers.SLURM.Managed":                        true,
-       "Containers.SLURM.Managed.AssignNodeHostname":     true,
-       "Containers.SLURM.Managed.ComputeNodeDomain":      false,
-       "Containers.SLURM.Managed.ComputeNodeNameservers": false,
-       "Containers.SLURM.Managed.DNSServerConfDir":       true,
-       "Containers.SLURM.Managed.DNSServerConfTemplate":  true,
-       "Containers.SLURM.Managed.DNSServerReloadCommand": false,
-       "Containers.SLURM.Managed.DNSServerUpdateCommand": false,
-       "Containers.StaleLockTimeout":                     true,
-       "Containers.SupportedDockerImageFormats":          true,
-       "Containers.UsePreemptibleInstances":              true,
-       "Git":                                             true,
-       "Git.Repositories":                                true,
-       "InstanceTypes":                                   true,
-       "InstanceTypes.*":                                 true,
-       "InstanceTypes.*.*":                               true,
-       "Login":                                           true,
-       "Login.ProviderAppID":                             false,
-       "Login.ProviderAppSecret":                         false,
-       "Mail":                                            true,
-       "Mail.EmailFrom":                                  true,
-       "Mail.IssueReporterEmailFrom":                     true,
-       "Mail.IssueReporterEmailTo":                       true,
-       "Mail.MailchimpAPIKey":                            false,
-       "Mail.MailchimpListID":                            false,
-       "Mail.SendUserSetupNotificationEmail":             true,
-       "Mail.SupportEmailAddress":                        true,
-       "ManagementToken":                                 false,
-       "PostgreSQL":                                      true,
-       "PostgreSQL.Connection":                           false,
-       "PostgreSQL.ConnectionPool":                       true,
-       "RemoteClusters":                                  true,
-       "RemoteClusters.*":                                true,
-       "RemoteClusters.*.ActivateUsers":                  true,
-       "RemoteClusters.*.Host":                           true,
-       "RemoteClusters.*.Insecure":                       true,
-       "RemoteClusters.*.Proxy":                          true,
-       "RemoteClusters.*.Scheme":                         true,
-       "Services":                                        true,
-       "Services.*":                                      true,
-       "Services.*.ExternalURL":                          true,
-       "Services.*.InternalURLs":                         true,
-       "Services.*.InternalURLs.*":                       true,
-       "Services.*.InternalURLs.*.*":                     true,
-       "SystemLogs":                                      true,
-       "SystemLogs.Format":                               true,
-       "SystemLogs.LogLevel":                             true,
-       "SystemLogs.MaxRequestLogParamsSize":              true,
-       "SystemRootToken":                                 false,
-       "TLS":                                             true,
-       "TLS.Certificate":                                 true,
-       "TLS.Insecure":                                    true,
-       "TLS.Key":                                         false,
-       "Users":                                           true,
-       "Users.AdminNotifierEmailFrom":                    true,
-       "Users.AutoAdminFirstUser":                        false,
-       "Users.AutoAdminUserWithEmail":                    false,
-       "Users.AutoSetupNewUsers":                         true,
-       "Users.AutoSetupNewUsersWithRepository":           true,
-       "Users.AutoSetupNewUsersWithVmUUID":               true,
-       "Users.AutoSetupUsernameBlacklist":                false,
-       "Users.EmailSubjectPrefix":                        true,
-       "Users.NewInactiveUserNotificationRecipients":     false,
-       "Users.NewUserNotificationRecipients":             false,
-       "Users.NewUsersAreActive":                         true,
-       "Users.UserNotifierEmailFrom":                     true,
-       "Users.UserProfileNotificationAddress":            true,
+       "ClusterID":                                    true,
+       "API":                                          true,
+       "API.AsyncPermissionsUpdateInterval":           false,
+       "API.DisabledAPIs":                             false,
+       "API.MaxIndexDatabaseRead":                     false,
+       "API.MaxItemsPerResponse":                      true,
+       "API.MaxRequestAmplification":                  false,
+       "API.MaxRequestSize":                           true,
+       "API.RailsSessionSecretToken":                  false,
+       "API.RequestTimeout":                           true,
+       "API.WebsocketClientEventQueue":                false,
+       "API.SendTimeout":                              true,
+       "API.WebsocketServerEventQueue":                false,
+       "API.KeepServiceRequestTimeout":                false,
+       "AuditLogs":                                    false,
+       "AuditLogs.MaxAge":                             false,
+       "AuditLogs.MaxDeleteBatch":                     false,
+       "AuditLogs.UnloggedAttributes":                 false,
+       "Collections":                                  true,
+       "Collections.BlobSigning":                      true,
+       "Collections.BlobSigningKey":                   false,
+       "Collections.BlobSigningTTL":                   true,
+       "Collections.CollectionVersioning":             false,
+       "Collections.DefaultReplication":               true,
+       "Collections.DefaultTrashLifetime":             true,
+       "Collections.ManagedProperties":                true,
+       "Collections.ManagedProperties.*":              true,
+       "Collections.ManagedProperties.*.*":            true,
+       "Collections.PreserveVersionIfIdle":            true,
+       "Collections.TrashSweepInterval":               false,
+       "Collections.TrustAllContent":                  false,
+       "Collections.WebDAVCache":                      false,
+       "Containers":                                   true,
+       "Containers.CloudVMs":                          false,
+       "Containers.CrunchRunCommand":                  false,
+       "Containers.CrunchRunArgumentsList":            false,
+       "Containers.DefaultKeepCacheRAM":               true,
+       "Containers.DispatchPrivateKey":                false,
+       "Containers.JobsAPI":                           true,
+       "Containers.JobsAPI.Enable":                    true,
+       "Containers.JobsAPI.GitInternalDir":            false,
+       "Containers.Logging":                           false,
+       "Containers.LogReuseDecisions":                 false,
+       "Containers.MaxComputeVMs":                     false,
+       "Containers.MaxDispatchAttempts":               false,
+       "Containers.MaxRetryAttempts":                  true,
+       "Containers.MinRetryPeriod":                    true,
+       "Containers.ReserveExtraRAM":                   true,
+       "Containers.SLURM":                             false,
+       "Containers.StaleLockTimeout":                  false,
+       "Containers.SupportedDockerImageFormats":       true,
+       "Containers.SupportedDockerImageFormats.*":     true,
+       "Containers.UsePreemptibleInstances":           true,
+       "EnableBetaController14287":                    false,
+       "Git":                                          false,
+       "InstanceTypes":                                true,
+       "InstanceTypes.*":                              true,
+       "InstanceTypes.*.*":                            true,
+       "Login":                                        false,
+       "Mail":                                         false,
+       "ManagementToken":                              false,
+       "PostgreSQL":                                   false,
+       "RemoteClusters":                               true,
+       "RemoteClusters.*":                             true,
+       "RemoteClusters.*.ActivateUsers":               true,
+       "RemoteClusters.*.Host":                        true,
+       "RemoteClusters.*.Insecure":                    true,
+       "RemoteClusters.*.Proxy":                       true,
+       "RemoteClusters.*.Scheme":                      true,
+       "Services":                                     true,
+       "Services.*":                                   true,
+       "Services.*.ExternalURL":                       true,
+       "Services.*.InternalURLs":                      false,
+       "SystemLogs":                                   false,
+       "SystemRootToken":                              false,
+       "TLS":                                          false,
+       "Users":                                        true,
+       "Users.AnonymousUserToken":                     true,
+       "Users.AdminNotifierEmailFrom":                 false,
+       "Users.AutoAdminFirstUser":                     false,
+       "Users.AutoAdminUserWithEmail":                 false,
+       "Users.AutoSetupNewUsers":                      false,
+       "Users.AutoSetupNewUsersWithRepository":        false,
+       "Users.AutoSetupNewUsersWithVmUUID":            false,
+       "Users.AutoSetupUsernameBlacklist":             false,
+       "Users.EmailSubjectPrefix":                     false,
+       "Users.NewInactiveUserNotificationRecipients":  false,
+       "Users.NewUserNotificationRecipients":          false,
+       "Users.NewUsersAreActive":                      false,
+       "Users.UserNotifierEmailFrom":                  false,
+       "Users.UserProfileNotificationAddress":         false,
+       "Workbench":                                    true,
+       "Workbench.ActivationContactLink":              false,
+       "Workbench.APIClientConnectTimeout":            true,
+       "Workbench.APIClientReceiveTimeout":            true,
+       "Workbench.APIResponseCompression":             true,
+       "Workbench.ApplicationMimetypesWithViewIcon":   true,
+       "Workbench.ApplicationMimetypesWithViewIcon.*": true,
+       "Workbench.ArvadosDocsite":                     true,
+       "Workbench.ArvadosPublicDataDocURL":            true,
+       "Workbench.DefaultOpenIdPrefix":                false,
+       "Workbench.EnableGettingStartedPopup":          true,
+       "Workbench.EnablePublicProjectsPage":           true,
+       "Workbench.FileViewersConfigURL":               true,
+       "Workbench.LogViewerMaxBytes":                  true,
+       "Workbench.MultiSiteSearch":                    true,
+       "Workbench.ProfilingEnabled":                   true,
+       "Workbench.Repositories":                       false,
+       "Workbench.RepositoryCache":                    false,
+       "Workbench.RunningJobLogRecordsToFetch":        true,
+       "Workbench.SecretKeyBase":                      false,
+       "Workbench.ShowRecentCollectionsOnDashboard":   true,
+       "Workbench.ShowUserAgreementInline":            true,
+       "Workbench.ShowUserNotifications":              true,
+       "Workbench.SiteName":                           true,
+       "Workbench.Theme":                              true,
+       "Workbench.UserProfileFormFields":              true,
+       "Workbench.UserProfileFormFields.*":            true,
+       "Workbench.UserProfileFormFields.*.*":          true,
+       "Workbench.UserProfileFormFields.*.*.*":        true,
+       "Workbench.UserProfileFormMessage":             true,
+       "Workbench.VocabularyURL":                      true,
 }
 
 func redactUnsafe(m map[string]interface{}, mPrefix, lookupPrefix string) error {