diff --git a/ui/src/app/app.tsx b/ui/src/app/app.tsx
index d312de0c95..e9f07be25c 100644
--- a/ui/src/app/app.tsx
+++ b/ui/src/app/app.tsx
@@ -161,7 +161,7 @@ export class App extends React.Component<{}, { popupProps: PopupProps, error: Er
) : (
-
+ services.version.version()}>{(msg) => msg.Version}}>
)
diff --git a/ui/src/app/shared/models.ts b/ui/src/app/shared/models.ts
index 285b3b2d0b..93618a3afb 100644
--- a/ui/src/app/shared/models.ts
+++ b/ui/src/app/shared/models.ts
@@ -618,3 +618,7 @@ export interface ApplicationSyncWindowState {
canSync: boolean;
}
+
+export interface VersionMessage {
+ Version: string;
+}
diff --git a/ui/src/app/shared/services/index.ts b/ui/src/app/shared/services/index.ts
index c520dcd111..9f9c4c6fe4 100644
--- a/ui/src/app/shared/services/index.ts
+++ b/ui/src/app/shared/services/index.ts
@@ -6,6 +6,7 @@ import { ProjectsService } from './projects-service';
import { RepositoriesService } from './repo-service';
import { RepoCredsService } from './repocreds-service';
import { UserService } from './user-service';
+import {VersionService} from './version-service';
import { ViewPreferencesService } from './view-preferences-service';
export interface Services {
@@ -18,6 +19,7 @@ export interface Services {
clusters: ClustersService;
projects: ProjectsService;
viewPreferences: ViewPreferencesService;
+ version: VersionService;
}
export const services: Services = {
@@ -30,6 +32,7 @@ export const services: Services = {
repocreds: new RepoCredsService(),
projects: new ProjectsService(),
viewPreferences: new ViewPreferencesService(),
+ version: new VersionService(),
};
export { ProjectParams, ProjectRoleParams, CreateJWTTokenParams, DeleteJWTTokenParams, JWTTokenResponse } from './projects-service';
diff --git a/ui/src/app/shared/services/requests.ts b/ui/src/app/shared/services/requests.ts
index afd489844d..374af5bf03 100644
--- a/ui/src/app/shared/services/requests.ts
+++ b/ui/src/app/shared/services/requests.ts
@@ -35,6 +35,7 @@ export default {
setApiRoot(val: string) {
apiRoot = val;
},
+ agent,
onError: onError.asObservable().filter((err) => err != null),
get(url: string) {
return initHandlers(agent.get(`${apiRoot}${url}`));
diff --git a/ui/src/app/shared/services/version-service.ts b/ui/src/app/shared/services/version-service.ts
new file mode 100644
index 0000000000..9468b64291
--- /dev/null
+++ b/ui/src/app/shared/services/version-service.ts
@@ -0,0 +1,8 @@
+import {VersionMessage} from '../models';
+import requests from './requests';
+
+export class VersionService {
+ public version(): Promise {
+ return requests.agent.get('/api/version').then((res) => res.body as VersionMessage);
+ }
+}
diff --git a/ui/yarn.lock b/ui/yarn.lock
index 419fffcf22..22667c379d 100644
--- a/ui/yarn.lock
+++ b/ui/yarn.lock
@@ -882,7 +882,7 @@ are-we-there-yet@~1.1.2:
"argo-ui@https://github.com/argoproj/argo-ui.git":
version "1.0.0"
- resolved "https://github.com/argoproj/argo-ui.git#f12c7f443d8108289276feafe47d0161c9de2390"
+ resolved "https://github.com/argoproj/argo-ui.git#7564d8b211e3ad392212133011445583b4902097"
dependencies:
"@fortawesome/fontawesome-free" "^5.8.1"
"@tippy.js/react" "^2.1.2"