From 68211a7ead5f3cbe1a90b1b7769118a2b3543211 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Thu, 6 Jun 2019 17:08:23 -0400 Subject: [PATCH] 15000: Add Workbench configs. Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- lib/config/config.default.yml | 50 ++++++ lib/config/export.go | 306 ++++++++++++++++++--------------- lib/config/generated_config.go | 50 ++++++ sdk/go/arvados/config.go | 32 ++++ 4 files changed, 301 insertions(+), 137 deletions(-) diff --git a/lib/config/config.default.yml b/lib/config/config.default.yml index a7b53489c0..b79840abd2 100644 --- a/lib/config/config.default.yml +++ b/lib/config/config.default.yml @@ -629,3 +629,53 @@ Clusters: # their accounts are active on the remote cluster, activate # them on this cluster too. ActivateUsers: false + + Workbench: + # Workbench1 configs + Theme: default + ActivationContactLink: mailto:info@arvados.org + ArvadosDocsite: https://doc.arvados.org + ArvadosPublicDataDocURL: https://playground.arvados.org/projects/public + ShowUserAgreementInline: false + SecretToken: "" + SecretKeyBase: "" + RepositoryCache: /var/www/arvados-workbench/current/tmp/git + UserProfileFormFields: + SAMPLE: + Type: text + FormFieldTitle: "" + FormFieldDescription: "" + Required: true + UserProfileFormMessage: 'Welcome to Arvados. All required fields must be completed before you can proceed.' + ApplicationMimetypesWithViewIcon: + cwl: {} + fasta: {} + go: {} + javascript: {} + json: {} + pdf: {} + python: {} + x-python: {} + r: {} + rtf: {} + sam: {} + x-sh: {} + vnd.realvnc.bed: {} + xml: {} + xsl: {} + LogViewerMaxBytes: 1M + EnablePublicProjectsPage: true + EnableGettingStartedPopup: false + APIResponseCompression: true + APIClientConnectTimeout: 2m + APIClientReceiveTimeout: 5m + RunningJobLogRecordsToFetch: 2000 + ShowRecentCollectionsOnDashboard: true + ShowUserNotifications: true + MultiSiteSearch: false + Repositories: true + SiteName: Arvados Workbench + + # Workbench2 configs + VocabularyURL: "" + FileViewersConfigURL: "" diff --git a/lib/config/export.go b/lib/config/export.go index 3c485e2b42..fca6b93a89 100644 --- a/lib/config/export.go +++ b/lib/config/export.go @@ -55,143 +55,175 @@ 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, + "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, + "Workbench": true, + "Workbench.ActivationContactLink": true, + "Workbench.APIClientConnectTimeout": true, + "Workbench.APIClientReceiveTimeout": true, + "Workbench.APIResponseCompression": true, + "Workbench.ApplicationMimetypesWithViewIcon": true, + "Workbench.ApplicationMimetypesWithViewIcon.*": true, + "Workbench.ArvadosDocsite": true, + "Workbench.ArvadosPublicDataDocURL": true, + "Workbench.EnableGettingStartedPopup": true, + "Workbench.EnablePublicProjectsPage": true, + "Workbench.FileViewersConfigURL": true, + "Workbench.LogViewerMaxBytes": true, + "Workbench.MultiSiteSearch": true, + "Workbench.Repositories": true, + "Workbench.RepositoryCache": true, + "Workbench.RunningJobLogRecordsToFetch": true, + "Workbench.SecretKeyBase": false, + "Workbench.SecretToken": false, + "Workbench.ShowRecentCollectionsOnDashboard": true, + "Workbench.ShowUserAgreementInline": true, + "Workbench.ShowUserNotifications": true, + "Workbench.SiteName": true, + "Workbench.Theme": true, + "Workbench.UserProfileFormFields": true, + "Workbench.UserProfileFormFields.*": true, + "Workbench.UserProfileFormFields.*.Type": true, + "Workbench.UserProfileFormFields.*.FormFieldTitle": true, + "Workbench.UserProfileFormFields.*.FormFieldDescription": true, + "Workbench.UserProfileFormFields.*.Required": true, + "Workbench.UserProfileFormMessage": true, + "Workbench.VocabularyURL": true, } func redactUnsafe(m map[string]interface{}, mPrefix, lookupPrefix string) error { diff --git a/lib/config/generated_config.go b/lib/config/generated_config.go index f9cd7bcd15..2e891911fe 100644 --- a/lib/config/generated_config.go +++ b/lib/config/generated_config.go @@ -635,4 +635,54 @@ Clusters: # their accounts are active on the remote cluster, activate # them on this cluster too. ActivateUsers: false + + Workbench: + # Workbench1 configs + Theme: default + ActivationContactLink: mailto:info@arvados.org + ArvadosDocsite: https://doc.arvados.org + ArvadosPublicDataDocURL: https://playground.arvados.org/projects/public + ShowUserAgreementInline: false + SecretToken: "" + SecretKeyBase: "" + RepositoryCache: /var/www/arvados-workbench/current/tmp/git + UserProfileFormFields: + SAMPLE: + Type: text + FormFieldTitle: "" + FormFieldDescription: "" + Required: true + UserProfileFormMessage: 'Welcome to Arvados. All required fields must be completed before you can proceed.' + ApplicationMimetypesWithViewIcon: + cwl: {} + fasta: {} + go: {} + javascript: {} + json: {} + pdf: {} + python: {} + x-python: {} + r: {} + rtf: {} + sam: {} + x-sh: {} + vnd.realvnc.bed: {} + xml: {} + xsl: {} + LogViewerMaxBytes: 1M + EnablePublicProjectsPage: true + EnableGettingStartedPopup: false + APIResponseCompression: true + APIClientConnectTimeout: 2m + APIClientReceiveTimeout: 5m + RunningJobLogRecordsToFetch: 2000 + ShowRecentCollectionsOnDashboard: true + ShowUserNotifications: true + MultiSiteSearch: false + Repositories: true + SiteName: Arvados Workbench + + # Workbench2 configs + VocabularyURL: "" + FileViewersConfigURL: "" `) diff --git a/sdk/go/arvados/config.go b/sdk/go/arvados/config.go index fb01f25f8c..adee067230 100644 --- a/sdk/go/arvados/config.go +++ b/sdk/go/arvados/config.go @@ -126,6 +126,38 @@ type Cluster struct { UserNotifierEmailFrom string UserProfileNotificationAddress string } + Workbench struct { + ActivationContactLink string + APIClientConnectTimeout Duration + APIClientReceiveTimeout Duration + APIResponseCompression bool + ApplicationMimetypesWithViewIcon map[string]struct{} + ArvadosDocsite string + ArvadosPublicDataDocURL string + EnableGettingStartedPopup bool + EnablePublicProjectsPage bool + FileViewersConfigURL string + LogViewerMaxBytes ByteSize + MultiSiteSearch bool + Repositories bool + RepositoryCache string + RunningJobLogRecordsToFetch int + SecretKeyBase string + SecretToken string + ShowRecentCollectionsOnDashboard bool + ShowUserAgreementInline bool + ShowUserNotifications bool + SiteName string + Theme string + UserProfileFormFields map[string]struct { + Type string + FormFieldTitle string + FormFieldDescription string + Required bool + } + UserProfileFormMessage string + VocabularyURL string + } } type Services struct { -- 2.39.5