From d51e978e898e4d145dcda1ebba30f602e19cdcec Mon Sep 17 00:00:00 2001
From: Romuald Lemesle <romuald.lemesle@filigran.io>
Date: Fri, 12 May 2023 11:31:45 +0200
Subject: [PATCH] [api, frontend] Endpoints modelization (#268)

---
 openex-api/pom.xml                            | 17 ++++++++++----
 .../src/main/resources/application.properties |  5 +++-
 .../exercises/injects/InjectIcon.js           | 23 +++++++++++--------
 3 files changed, 31 insertions(+), 14 deletions(-)

diff --git a/openex-api/pom.xml b/openex-api/pom.xml
index 81f8a98287..039c5ed5a9 100644
--- a/openex-api/pom.xml
+++ b/openex-api/pom.xml
@@ -13,6 +13,10 @@
     <name>OpenEx API</name>
     <description>OpenEx api</description>
 
+    <properties>
+        <injector.version>3.2.2-SNAPSHOT</injector.version>
+    </properties>
+
     <profiles>
         <profile>
             <id>dev</id>
@@ -20,22 +24,27 @@
                 <dependency>
                     <groupId>io.openex</groupId>
                     <artifactId>openex-injector-ovh</artifactId>
-                    <version>3.2.2-SNAPSHOT</version>
+                    <version>${injector.version}</version>
                 </dependency>
                 <dependency>
                     <groupId>io.openex</groupId>
                     <artifactId>openex-injector-lade</artifactId>
-                    <version>3.2.2-SNAPSHOT</version>
+                    <version>${injector.version}</version>
                 </dependency>
                 <dependency>
                     <groupId>io.openex</groupId>
                     <artifactId>openex-injector-mastodon</artifactId>
-                    <version>3.2.2-SNAPSHOT</version>
+                    <version>${injector.version}</version>
                 </dependency>
                 <dependency>
                     <groupId>io.openex</groupId>
                     <artifactId>openex-injector-http</artifactId>
-                    <version>3.2.2-SNAPSHOT</version>
+                    <version>${injector.version}</version>
+                </dependency>
+                <dependency>
+                    <groupId>io.openex</groupId>
+                    <artifactId>openex-injector-ssh</artifactId>
+                    <version>${injector.version}</version>
                 </dependency>
             </dependencies>
         </profile>
diff --git a/openex-api/src/main/resources/application.properties b/openex-api/src/main/resources/application.properties
index 6f79b06526..710cf9f5a8 100644
--- a/openex-api/src/main/resources/application.properties
+++ b/openex-api/src/main/resources/application.properties
@@ -147,4 +147,7 @@ lade.username=<username>
 lade.password=<password>
 
 # Injector Http config
-http.enable=true
\ No newline at end of file
+http.enable=true
+
+# Injector SSH config
+ssh.enabled=true
diff --git a/openex-front/src/admin/components/exercises/injects/InjectIcon.js b/openex-front/src/admin/components/exercises/injects/InjectIcon.js
index 06e55eba8c..2421ff42b5 100644
--- a/openex-front/src/admin/components/exercises/injects/InjectIcon.js
+++ b/openex-front/src/admin/components/exercises/injects/InjectIcon.js
@@ -1,19 +1,16 @@
 import React, { Component } from 'react';
 import * as PropTypes from 'prop-types';
 import {
+  ApiOutlined,
   EmailOutlined,
-  SmsOutlined,
-  NotificationsActiveOutlined,
+  EmojiEventsOutlined,
   HelpOutlined,
+  LastPage,
+  NotificationsActiveOutlined,
+  SmsOutlined,
   SpeakerNotesOutlined,
-  ApiOutlined,
-  EmojiEventsOutlined,
 } from '@mui/icons-material';
-import {
-  Mastodon,
-  NewspaperVariantMultipleOutline,
-  Twitter,
-} from 'mdi-material-ui';
+import { Mastodon, NewspaperVariantMultipleOutline, Twitter, } from 'mdi-material-ui';
 import Airbus from '../../../../resources/images/contracts/airbus.png';
 import CustomTooltip from '../../../../components/CustomTooltip';
 
@@ -123,6 +120,14 @@ const iconSelector = (type, variant, fontSize, done, disabled) => {
           sx={{ color: done ? '#4caf50' : '#e91e63' }}
         />
       );
+    case 'openex_ssh':
+      return (
+        <LastPage
+          style={style}
+          fontSize={fontSize}
+          sx={{ color: color || '#6300d4' }}
+        />
+      );
     default:
       return <HelpOutlined style={style} fontSize={fontSize} />;
   }