X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/cf83b358f087a87b5ff095d3ed7a8c6920c60ffe..96626db04a7dcb11b21d92203a6ddd81577191bf:/src/common/config.ts diff --git a/src/common/config.ts b/src/common/config.ts index cf539f3d..afbeb5ae 100644 --- a/src/common/config.ts +++ b/src/common/config.ts @@ -58,6 +58,7 @@ export interface ClusterConfigJSON { SSHHelpPageHTML: string; SSHHelpHostSuffix: string; SiteName: string; + IdleTimeout: string; }; Login: { LoginCluster: string; @@ -76,6 +77,9 @@ export interface ClusterConfigJSON { SSO: { Enable: boolean; } + Test: { + Enable: boolean; + } }; Collections: { ForwardSlashNameSubstitution: string; @@ -100,7 +104,8 @@ export class Config { apiRevision: number; } -export const buildConfig = (clusterConfigJSON: ClusterConfigJSON): Config => { +export const buildConfig = (clusterConfig: ClusterConfigJSON): Config => { + const clusterConfigJSON = removeTrailingSlashes(clusterConfig); const config = new Config(); config.rootUrl = clusterConfigJSON.Services.Controller.ExternalURL; config.baseUrl = `${config.rootUrl}/${ARVADOS_API_PATH}`; @@ -134,7 +139,7 @@ const removeTrailingSlashes = (config: ClusterConfigJSON): ClusterConfigJSON => svcs[s].ExternalURL = svcs[s].ExternalURL.replace(/\/+$/, ''); } }); - return {...config, Services: svcs}; + return { ...config, Services: svcs }; }; export const fetchConfig = () => { @@ -150,9 +155,8 @@ export const fetchConfig = () => { throw new Error(`Unable to start Workbench. API_HOST is undefined in ${WORKBENCH_CONFIG_URL} or the environment.`); } return Axios.get(getClusterConfigURL(workbenchConfig.API_HOST)).then(async response => { - const clusterConfigJSON = removeTrailingSlashes(response.data); - const apiRevision = await getApiRevision(clusterConfigJSON.Services.Controller.ExternalURL); - const config = { ...buildConfig(clusterConfigJSON), apiRevision }; + const apiRevision = await getApiRevision(response.data.Services.Controller.ExternalURL.replace(/\/+$/, '')); + const config = { ...buildConfig(response.data), apiRevision }; const warnLocalConfig = (varName: string) => console.warn( `A value for ${varName} was found in ${WORKBENCH_CONFIG_URL}. To use the Arvados centralized configuration instead, \ remove the entire ${varName} entry from ${WORKBENCH_CONFIG_URL}`); @@ -166,7 +170,7 @@ remove the entire ${varName} entry from ${WORKBENCH_CONFIG_URL}`); fileViewerConfigUrl = workbenchConfig.FILE_VIEWERS_CONFIG_URL; } else { - fileViewerConfigUrl = clusterConfigJSON.Workbench.FileViewersConfigURL || "/file-viewers-example.json"; + fileViewerConfigUrl = config.clusterConfig.Workbench.FileViewersConfigURL || "/file-viewers-example.json"; } config.fileViewersConfigUrl = fileViewerConfigUrl; @@ -176,7 +180,7 @@ remove the entire ${varName} entry from ${WORKBENCH_CONFIG_URL}`); vocabularyUrl = workbenchConfig.VOCABULARY_URL; } else { - vocabularyUrl = clusterConfigJSON.Workbench.VocabularyURL || "/vocabulary-example.json"; + vocabularyUrl = config.clusterConfig.Workbench.VocabularyURL || "/vocabulary-example.json"; } config.vocabularyUrl = vocabularyUrl; @@ -213,6 +217,7 @@ export const mockClusterConfigJSON = (config: Partial): Clust SSHHelpPageHTML: "", SSHHelpHostSuffix: "", SiteName: "", + IdleTimeout: "0s", }, Login: { LoginCluster: "", @@ -231,6 +236,9 @@ export const mockClusterConfigJSON = (config: Partial): Clust SSO: { Enable: false, }, + Test: { + Enable: false, + }, }, Collections: { ForwardSlashNameSubstitution: "",