From 75c791e23cbe945d84360fed120cbc5ca83d402f Mon Sep 17 00:00:00 2001
From: EL HAJJIOUI Nabil <nabil.elhajjioui@smile.fr>
Date: Sun, 27 Sep 2020 20:33:18 +0200
Subject: [PATCH] [VAS] Supervision des APIs

---
 .gitignore                                    |   8 ++
 .../dev-vitam/access-external-client.conf     |   4 +-
 .../dev-vitam/ingest-external-client.conf     |   4 +-
 .../config/dev-vitam/keystore_ihm-demo.p12    | Bin 4486 -> 4486 bytes
 .../config/dev-vitam/truststore_ihm-demo.jks  | Bin 8514 -> 7912 bytes
 .../dev-vitam/access-external-client.conf     |   8 +-
 .../dev-vitam/ingest-external-client.conf     |   4 +-
 .../config/dev-vitam/keystore_ihm-demo.p12    | Bin 4486 -> 4486 bytes
 .../config/dev-vitam/truststore_ihm-demo.jks  | Bin 7912 -> 7912 bytes
 .../commons/api/domain/ServicesData.java      |  24 +++-
 .../mongod/1.0.0/101_iam_system_demo.js       |   3 +-
 .../scripts/mongod/1.0.0/207_iam_ref.js.j2    |  32 ++++-
 .../mongod/1.0.0/208_application_ref.js.j2    |  20 ++-
 .../mongod/1.0.0/210_security_ref.js.j2       |   6 +-
 ui/package-lock.json                          |   3 +
 ui/ui-frontend-common/package-lock.json       | 105 ++++++---------
 .../src/app/modules/auth.service.ts           |  22 +++
 .../app/modules/logbook/logbook.service.ts    |  23 +++-
 ui/ui-frontend/package-lock.json              |  26 +---
 .../referential/src/app/app-routing.module.ts |   9 ++
 .../api-supervision-detail.component.html     |  83 ++++++++++++
 .../api-supervision-detail.component.scss     |  43 ++++++
 .../api-supervision-detail.component.spec.ts  |  73 ++++++++++
 .../api-supervision-detail.component.ts       | 119 ++++++++++++++++
 .../api-supervision-popup.component.ts        |  68 ++++++++++
 .../api-supervision-list.component.html       |  81 +++++++++++
 .../api-supervision-list.component.scss       |  29 ++++
 .../api-supervision-list.component.spec.ts    |  72 ++++++++++
 .../api-supervision-list.component.ts         |  87 ++++++++++++
 .../event-type-badge-class.pipe.spec.ts       |  44 ++++++
 .../event-type-badge-class.pipe.ts            |  67 +++++++++
 .../event-type-color-class.pipe.spec.ts       |  44 ++++++
 .../event-type-color-class.pipe.ts            |  67 +++++++++
 .../last-event.pipe.spec.ts                   |  44 ++++++
 .../api-supervision-list/last-event.pipe.ts   |  50 +++++++
 .../api-supervision-routing.module.ts         |  73 ++++++++++
 .../api-supervision.component.html            |  89 ++++++++++++
 .../api-supervision.component.scss            |  31 +++++
 .../api-supervision.component.spec.ts         |  83 ++++++++++++
 .../api-supervision.component.ts              | 127 ++++++++++++++++++
 .../supervision-api/api-supervision.module.ts |  82 +++++++++++
 .../supervision-api/event-filter.interface.ts |  41 ++++++
 .../logbook-search.service.spec.ts            |  58 ++++++++
 .../supervision-api/logbook-search.service.ts | 114 ++++++++++++++++
 .../src/assets/mini-logo-vitam.png            | Bin 0 -> 43081 bytes
 .../projects/referential/src/sass/styles.scss |   4 +-
 .../ui/ui-frontend/package-lock.json          |   3 +
 .../ui/ui-frontend/package-lock.json          |   3 +
 .../ui/ui-frontend/package-lock.json          |   3 +
 49 files changed, 1871 insertions(+), 112 deletions(-)
 mode change 100644 => 100755 api/api-iam/iam-internal/src/main/config/dev-vitam/access-external-client.conf
 mode change 100644 => 100755 api/api-iam/iam-internal/src/main/config/dev-vitam/ingest-external-client.conf
 mode change 100755 => 100644 api/api-iam/iam-internal/src/main/config/dev-vitam/keystore_ihm-demo.p12
 mode change 100755 => 100644 api/api-iam/iam-internal/src/main/config/dev-vitam/truststore_ihm-demo.jks
 mode change 100644 => 100755 api/api-referential/referential-internal/src/main/config/dev-vitam/access-external-client.conf
 mode change 100644 => 100755 api/api-referential/referential-internal/src/main/config/dev-vitam/ingest-external-client.conf
 create mode 100644 ui/package-lock.json
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-detail.component.html
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-detail.component.scss
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-detail.component.spec.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-detail.component.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-popup.component.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/api-supervision-list.component.html
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/api-supervision-list.component.scss
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/api-supervision-list.component.spec.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/api-supervision-list.component.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/event-type-badge-class.pipe.spec.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/event-type-badge-class.pipe.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/event-type-color-class.pipe.spec.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/event-type-color-class.pipe.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/last-event.pipe.spec.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/last-event.pipe.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-routing.module.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.component.html
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.component.scss
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.component.spec.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.component.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.module.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/event-filter.interface.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/logbook-search.service.spec.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/app/supervision-api/logbook-search.service.ts
 create mode 100644 ui/ui-frontend/projects/referential/src/assets/mini-logo-vitam.png
 create mode 100644 ui/ui-identity/${maven.multiModuleProjectDirectory}/ui/ui-frontend/package-lock.json
 create mode 100644 ui/ui-portal/${maven.multiModuleProjectDirectory}/ui/ui-frontend/package-lock.json
 create mode 100644 ui/ui-referential/${maven.multiModuleProjectDirectory}/ui/ui-frontend/package-lock.json

diff --git a/.gitignore b/.gitignore
index 40ed268d..8080a1d9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -227,6 +227,14 @@ deployment/playbooks/templates/vitamui/conf/*/*.jks
 # Imported vitamui app vitam truststore
 deployment/playbooks/templates/vitamui/conf/*/*.p12
 
+# Vitam development configuration
+
+###################################
+# Vitam development configuration #
+###################################
+api/api-referential/referential-internal/src/main/config/dev-vitam/*
+api/api-iam/iam-internal/src/main/config/dev-vitam/*
+
 ##########################################
 # Mongo workspace entry-point #
 ##########################################
diff --git a/api/api-iam/iam-internal/src/main/config/dev-vitam/access-external-client.conf b/api/api-iam/iam-internal/src/main/config/dev-vitam/access-external-client.conf
old mode 100644
new mode 100755
index fd7adb31..ca4c9f08
--- a/api/api-iam/iam-internal/src/main/config/dev-vitam/access-external-client.conf
+++ b/api/api-iam/iam-internal/src/main/config/dev-vitam/access-external-client.conf
@@ -3,9 +3,9 @@ serverPort: 8444
 secure: true
 sslConfiguration :
  keystore :
-  - keyPath:  src/main/config/dev-vitam/keystore_ihm-demo.p12
+  - keyPath: keystore_ihm-demo.p12
     keyPassword: azerty4
  truststore :
-  - keyPath: src/main/config/dev-vitam/truststore_ihm-demo.jks
+  - keyPath: truststore_ihm-demo.jks
     keyPassword: azerty10
 hostnameVerification: true
diff --git a/api/api-iam/iam-internal/src/main/config/dev-vitam/ingest-external-client.conf b/api/api-iam/iam-internal/src/main/config/dev-vitam/ingest-external-client.conf
old mode 100644
new mode 100755
index 8bceab66..7663d517
--- a/api/api-iam/iam-internal/src/main/config/dev-vitam/ingest-external-client.conf
+++ b/api/api-iam/iam-internal/src/main/config/dev-vitam/ingest-external-client.conf
@@ -3,9 +3,9 @@ serverPort: 8443
 secure: true
 sslConfiguration :
  keystore :
-  - keyPath: src/main/config/dev-vitam/keystore_ihm-demo.p12
+  - keyPath: keystore_ihm-demo.p12
     keyPassword: azerty4
  truststore :
-  - keyPath: src/main/config/dev-vitam/truststore_ihm-demo.jks
+  - keyPath: truststore_ihm-demo.jks
     keyPassword: azerty10
 hostnameVerification: true
diff --git a/api/api-iam/iam-internal/src/main/config/dev-vitam/keystore_ihm-demo.p12 b/api/api-iam/iam-internal/src/main/config/dev-vitam/keystore_ihm-demo.p12
old mode 100755
new mode 100644
index 6307b111d22ae85d636ea1a7d9f2d1fd26727cdd..652b1b4c5a06351fd936695a604a0024eab3cd1d
GIT binary patch
delta 4341
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

delta 4341
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

diff --git a/api/api-iam/iam-internal/src/main/config/dev-vitam/truststore_ihm-demo.jks b/api/api-iam/iam-internal/src/main/config/dev-vitam/truststore_ihm-demo.jks
old mode 100755
new mode 100644
index cc137286b97dfba8fa84a03aaed764c9c5b7e7dc..d533f7cfe83e4a29c67eff203fecb23f9e409137
GIT binary patch
literal 7912
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
QWb9ikN)n~+J;IXz1;$^T+5i9m

literal 8514
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

diff --git a/api/api-referential/referential-internal/src/main/config/dev-vitam/access-external-client.conf b/api/api-referential/referential-internal/src/main/config/dev-vitam/access-external-client.conf
old mode 100644
new mode 100755
index 6e4a8935..ca4c9f08
--- a/api/api-referential/referential-internal/src/main/config/dev-vitam/access-external-client.conf
+++ b/api/api-referential/referential-internal/src/main/config/dev-vitam/access-external-client.conf
@@ -3,9 +3,9 @@ serverPort: 8444
 secure: true
 sslConfiguration :
  keystore :
-  - keyPath: src/main/config/dev-vitam/keystore_ihm-demo.p12
-    keyPassword: FaKzJrnQFxFe3D2d
+  - keyPath: keystore_ihm-demo.p12
+    keyPassword: azerty4
  truststore :
-  - keyPath: src/main/config/dev-vitam/truststore_ihm-demo.jks
-    keyPassword: K8GeuGNjfbFB66JG
+  - keyPath: truststore_ihm-demo.jks
+    keyPassword: azerty10
 hostnameVerification: true
diff --git a/api/api-referential/referential-internal/src/main/config/dev-vitam/ingest-external-client.conf b/api/api-referential/referential-internal/src/main/config/dev-vitam/ingest-external-client.conf
old mode 100644
new mode 100755
index 8bceab66..7663d517
--- a/api/api-referential/referential-internal/src/main/config/dev-vitam/ingest-external-client.conf
+++ b/api/api-referential/referential-internal/src/main/config/dev-vitam/ingest-external-client.conf
@@ -3,9 +3,9 @@ serverPort: 8443
 secure: true
 sslConfiguration :
  keystore :
-  - keyPath: src/main/config/dev-vitam/keystore_ihm-demo.p12
+  - keyPath: keystore_ihm-demo.p12
     keyPassword: azerty4
  truststore :
-  - keyPath: src/main/config/dev-vitam/truststore_ihm-demo.jks
+  - keyPath: truststore_ihm-demo.jks
     keyPassword: azerty10
 hostnameVerification: true
diff --git a/api/api-referential/referential-internal/src/main/config/dev-vitam/keystore_ihm-demo.p12 b/api/api-referential/referential-internal/src/main/config/dev-vitam/keystore_ihm-demo.p12
index fde3f6dab2b74420967a4a04d49eea423af9c22e..652b1b4c5a06351fd936695a604a0024eab3cd1d 100644
GIT binary patch
delta 4341
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

delta 4341
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

diff --git a/api/api-referential/referential-internal/src/main/config/dev-vitam/truststore_ihm-demo.jks b/api/api-referential/referential-internal/src/main/config/dev-vitam/truststore_ihm-demo.jks
index 9142cc15aa1057072d6ca3fe886d41aa29c15fa5..d533f7cfe83e4a29c67eff203fecb23f9e409137 100644
GIT binary patch
delta 4680
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
H<y8Iy1d{3N

delta 4680
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
JrqI$4{sS%R)qVf~

diff --git a/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/domain/ServicesData.java b/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/domain/ServicesData.java
index 51580f99..827cf362 100644
--- a/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/domain/ServicesData.java
+++ b/commons/commons-api/src/main/java/fr/gouv/vitamui/commons/api/domain/ServicesData.java
@@ -310,8 +310,8 @@ public class ServicesData {
 
     public static final String ROLE_RUN_AUDITS = ROLE_PREFIX + "RUN_" + SERVICE_AUDITS;
 
-    //------------------------------------- PROBATIVE_VALUE --------------------------------------------    
-    
+    //------------------------------------- PROBATIVE_VALUE --------------------------------------------
+
     public static final String SERVICE_PROBATIVE_VALUE = "PROBATIVE_VALUE";
 
     public static final String ROLE_RUN_PROBATIVE_VALUE = "ROLE_RUN_" + SERVICE_PROBATIVE_VALUE;
@@ -326,6 +326,14 @@ public class ServicesData {
 
     public static final String ROLE_GET_ARCHIVE_PROFILES = ROLE_PREFIX + "GET_ARCHIVE_PROFILES";
 
+    //------------------------------------ API SUPERVISION -----------------------------------------
+
+    public static final String SERVICE_API_SUPERVISION_ROLE = "SUPERVISION_API";
+
+    public static final String ROLE_CREATE_SUPERVISION_ROLE = CREATE_ROLE_PREFIX + SERVICE_API_SUPERVISION_ROLE;
+    public static final String ROLE_GET_SUPERVISION_ROLE = GET_ROLE_PREFIX + SERVICE_API_SUPERVISION_ROLE;
+    public static final String ROLE_GET_ALL_SUPERVISION_ROLE = GET_ROLE_PREFIX + "ALL_" + SERVICE_API_SUPERVISION_ROLE;
+
     //@formatter:off
 
     /**
@@ -404,7 +412,11 @@ public class ServicesData {
 
             ROLE_RUN_AUDITS,
             ROLE_GET_OPERATIONS,
-            ROLE_RUN_PROBATIVE_VALUE
+            ROLE_RUN_PROBATIVE_VALUE,
+
+            ROLE_CREATE_SUPERVISION_ROLE,
+            ROLE_GET_SUPERVISION_ROLE,
+            ROLE_GET_ALL_SUPERVISION_ROLE
 
             );
 
@@ -507,7 +519,11 @@ public class ServicesData {
             ROLE_DELETE_ONTOLOGIES,
 
             ROLE_RUN_AUDITS,
-            ROLE_RUN_PROBATIVE_VALUE
+            ROLE_RUN_PROBATIVE_VALUE,
+
+            ROLE_CREATE_SUPERVISION_ROLE,
+            ROLE_GET_SUPERVISION_ROLE,
+            ROLE_GET_ALL_SUPERVISION_ROLE
 
             );
     //@formatter:on
diff --git a/deployment/scripts/mongod/1.0.0/101_iam_system_demo.js b/deployment/scripts/mongod/1.0.0/101_iam_system_demo.js
index e84c2d00..850f4e85 100644
--- a/deployment/scripts/mongod/1.0.0/101_iam_system_demo.js
+++ b/deployment/scripts/mongod/1.0.0/101_iam_system_demo.js
@@ -199,7 +199,8 @@ db.groups.insert({
         "system_audit",
         "system_secure",
         "system_dsl",
-        "system_probative_value"
+        "system_probative_value",
+         "system_supervision_api_profile"
 	],
 	"readonly": false,
 	"level": "",
diff --git a/deployment/scripts/mongod/1.0.0/207_iam_ref.js.j2 b/deployment/scripts/mongod/1.0.0/207_iam_ref.js.j2
index c4a5a518..0f9a3c06 100644
--- a/deployment/scripts/mongod/1.0.0/207_iam_ref.js.j2
+++ b/deployment/scripts/mongod/1.0.0/207_iam_ref.js.j2
@@ -407,6 +407,33 @@ db.profiles.insert({
 	 ]
 });
 
+db.profiles.insert({
+  "_id": "system_supervision_api_profile",
+  "identifier" : NumberInt(maxIdProfile++),
+  "name": "Supervision API Profile",
+  "description": "Supervision Profile api",
+  "tenantIdentifier": NumberInt({{ vitamui_platform_informations.proof_tenant }}),
+  "applicationName": "SUPERVISION_API_APP",
+  "level": "",
+  "enabled": true,
+  "readonly": false,
+  "customerId": "system_customer",
+  "roles": [
+  {
+    "name": "ROLE_CREATE_SUPERVISION_API"
+  },
+  {
+    "name": "ROLE_GET_SUPERVISION_API"
+  },
+  {
+    "name": "ROLE_GET_ALL_SUPERVISION_API"
+  },
+  {
+       "name": "ROLE_LOGBOOKS"
+  }
+   ]
+});
+
 db.sequences.updateOne({
     "_id": "profile_identifier"
 }, {
@@ -436,10 +463,11 @@ db.groups.updateOne( {
                 "system_audit",
                 "system_secure",
                 "system_dsl",
-                "system_probative_value"
+                "system_probative_value",
+                "system_supervision_api_profile"
         	]
         }
     }
 });
 
-print("END 207_iam_ref.js");
\ No newline at end of file
+print("END 207_iam_ref.js");
diff --git a/deployment/scripts/mongod/1.0.0/208_application_ref.js.j2 b/deployment/scripts/mongod/1.0.0/208_application_ref.js.j2
index 43afea90..03bba5a2 100644
--- a/deployment/scripts/mongod/1.0.0/208_application_ref.js.j2
+++ b/deployment/scripts/mongod/1.0.0/208_application_ref.js.j2
@@ -202,4 +202,22 @@ db.applications.insert({
     "target" : "_self"
 });
 
-print("END 208_application_ref.js");
\ No newline at end of file
+db.applications.insert({
+    "identifier" : "SUPERVISION_API_APP",
+{% if vitamui.referential.base_url is defined %}
+    "url": "{{ vitamui.referential.base_url }}/supervision-api",
+{% else %}
+    "url": "{{ url_prefix }}/referential/supervision-api",
+{% endif %}
+    "icon": "vitamui-icon vitamui-icon-api-supervision",
+    "name": "Supervision des APIs",
+    "category": "referential",
+    "position": NumberInt(16),
+    "hasCustomerList": false,
+    "hasTenantList": false,
+    "hasHighlight": false,
+    "tooltip": "Consultation des journaux des opérations d'entrées, de bases, d'éliminations",
+    "target": "_self"
+});
+
+print("END 208_application_ref.js");
diff --git a/deployment/scripts/mongod/1.0.0/210_security_ref.js.j2 b/deployment/scripts/mongod/1.0.0/210_security_ref.js.j2
index 59e6a1fc..10e7c5fd 100644
--- a/deployment/scripts/mongod/1.0.0/210_security_ref.js.j2
+++ b/deployment/scripts/mongod/1.0.0/210_security_ref.js.j2
@@ -24,8 +24,10 @@ db.contexts.insert({
         "ROLE_GET_FILE_FORMATS", "ROLE_UPDATE_FILE_FORMATS", "ROLE_CREATE_FILE_FORMATS", "ROLE_DELETE_FILE_FORMATS",
         "ROLE_GET_CONTEXTS", "ROLE_UPDATE_CONTEXTS", "ROLE_CREATE_CONTEXTS",
         "ROLE_GET_SECURITY_PROFILES", "ROLE_UPDATE_SECURITY_PROFILES", "ROLE_CREATE_SECURITY_PROFILES", "ROLE_DELETE_SECURITY_PROFILES",
-        "ROLE_GET_OPERATIONS", "ROLE_RUN_AUDITS", "ROLE_RUN_PROBATIVE_VALUE"
+        "ROLE_GET_OPERATIONS", "ROLE_RUN_AUDITS", "ROLE_RUN_PROBATIVE_VALUE",
+        "ROLE_CREATE_SUPERVISION_API", "ROLE_GET_SUPERVISION_API", "ROLE_GET_ALL_SUPERVISION_API", "ROLE_LOGBOOKS"
+
     ]
 });
 
-print("END 210_security_ref.js");
\ No newline at end of file
+print("END 210_security_ref.js");
diff --git a/ui/package-lock.json b/ui/package-lock.json
new file mode 100644
index 00000000..48e341a0
--- /dev/null
+++ b/ui/package-lock.json
@@ -0,0 +1,3 @@
+{
+  "lockfileVersion": 1
+}
diff --git a/ui/ui-frontend-common/package-lock.json b/ui/ui-frontend-common/package-lock.json
index 9c5e065d..158cf6b7 100644
--- a/ui/ui-frontend-common/package-lock.json
+++ b/ui/ui-frontend-common/package-lock.json
@@ -5431,9 +5431,43 @@
           "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
           "dev": true
         },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://nexus.teamdlab.com/repository/npm/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://nexus.teamdlab.com/repository/npm/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://nexus.teamdlab.com/repository/npm/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://nexus.teamdlab.com/repository/npm/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        },
         "qs": {
           "version": "6.7.0",
-          "resolved": "https://nexus.teamdlab.com/repository/npm/qs/-/qs-6.7.0.tgz",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
           "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
           "dev": true
         }
@@ -5501,56 +5535,10 @@
           "requires": {
             "is-descriptor": "^1.0.0"
           }
-        }
-      }
-    },
-    "express": {
-      "version": "4.17.1",
-      "resolved": "https://nexus.teamdlab.com/repository/npm/express/-/express-4.17.1.tgz",
-      "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
-      "dev": true,
-      "requires": {
-        "accepts": "~1.3.7",
-        "array-flatten": "1.1.1",
-        "body-parser": "1.19.0",
-        "content-disposition": "0.5.3",
-        "content-type": "~1.0.4",
-        "cookie": "0.4.0",
-        "cookie-signature": "1.0.6",
-        "debug": "2.6.9",
-        "depd": "~1.1.2",
-        "encodeurl": "~1.0.2",
-        "escape-html": "~1.0.3",
-        "etag": "~1.8.1",
-        "finalhandler": "~1.1.2",
-        "fresh": "0.5.2",
-        "merge-descriptors": "1.0.1",
-        "methods": "~1.1.2",
-        "on-finished": "~2.3.0",
-        "parseurl": "~1.3.3",
-        "path-to-regexp": "0.1.7",
-        "proxy-addr": "~2.0.5",
-        "qs": "6.7.0",
-        "range-parser": "~1.2.1",
-        "safe-buffer": "5.1.2",
-        "send": "0.17.1",
-        "serve-static": "1.14.1",
-        "setprototypeof": "1.1.1",
-        "statuses": "~1.5.0",
-        "type-is": "~1.6.18",
-        "utils-merge": "1.0.1",
-        "vary": "~1.1.2"
-      },
-      "dependencies": {
-        "array-flatten": {
-          "version": "1.1.1",
-          "resolved": "https://nexus.teamdlab.com/repository/npm/array-flatten/-/array-flatten-1.1.1.tgz",
-          "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
-          "dev": true
         },
         "extend-shallow": {
           "version": "2.0.1",
-          "resolved": "https://nexus.teamdlab.com/repository/npm/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
           "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
           "dev": true,
           "requires": {
@@ -5559,7 +5547,7 @@
         },
         "is-accessor-descriptor": {
           "version": "1.0.0",
-          "resolved": "https://nexus.teamdlab.com/repository/npm/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
           "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
           "dev": true,
           "requires": {
@@ -5568,7 +5556,7 @@
         },
         "is-data-descriptor": {
           "version": "1.0.0",
-          "resolved": "https://nexus.teamdlab.com/repository/npm/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
           "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
           "dev": true,
           "requires": {
@@ -5577,7 +5565,7 @@
         },
         "is-descriptor": {
           "version": "1.0.2",
-          "resolved": "https://nexus.teamdlab.com/repository/npm/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
           "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
           "dev": true,
           "requires": {
@@ -7105,8 +7093,7 @@
     "is-extendable": {
       "version": "0.1.1",
       "resolved": "https://nexus.teamdlab.com/repository/npm/is-extendable/-/is-extendable-0.1.1.tgz",
-      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
-      "dev": true
+      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
     },
     "is-extglob": {
       "version": "2.1.1",
@@ -8064,8 +8051,7 @@
     "kind-of": {
       "version": "6.0.3",
       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
-      "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
-      "dev": true
+      "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
     },
     "latest-version": {
       "version": "5.1.0",
@@ -8960,15 +8946,6 @@
             "universalify": "^0.1.0"
           }
         },
-        "rimraf": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
-          "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
-          "dev": true,
-          "requires": {
-            "glob": "^7.1.3"
-          }
-        },
         "rimraf": {
           "version": "3.0.2",
           "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
diff --git a/ui/ui-frontend-common/src/app/modules/auth.service.ts b/ui/ui-frontend-common/src/app/modules/auth.service.ts
index 8d68a152..7226f8cc 100644
--- a/ui/ui-frontend-common/src/app/modules/auth.service.ts
+++ b/ui/ui-frontend-common/src/app/modules/auth.service.ts
@@ -37,6 +37,7 @@
 import { Inject, Injectable } from '@angular/core';
 import { BehaviorSubject } from 'rxjs';
 
+import { ApplicationId } from './application-id.enum';
 import { WINDOW_LOCATION } from './injection-tokens';
 import { AuthUser, Tenant } from './models';
 
@@ -111,4 +112,25 @@ export class AuthService {
     return tenant;
   }
 
+  getTenantByAppAndIdentifier(appId: ApplicationId, tenantIdentifier: number): Tenant {
+    if (!this._user) {
+      console.error(`AuthService Error: user is null`);
+
+      return null;
+    }
+
+    const app = this._user.tenantsByApp.find((appTenants) => appTenants.name === appId);
+    if (!app) {
+      console.error(`AuthService Error: can\'t find application with id "${appId}"`);
+      return null;
+    }
+
+    const tenant = app.tenants.find((t) => t.identifier === tenantIdentifier);
+    if (!tenant) {
+      console.error(`AuthService Error: can\'t find tenant with id "${tenantIdentifier}"`);
+      return null;
+    }
+    return tenant;
+  }
+
 }
diff --git a/ui/ui-frontend-common/src/app/modules/logbook/logbook.service.ts b/ui/ui-frontend-common/src/app/modules/logbook/logbook.service.ts
index 0d57674e..f9133326 100644
--- a/ui/ui-frontend-common/src/app/modules/logbook/logbook.service.ts
+++ b/ui/ui-frontend-common/src/app/modules/logbook/logbook.service.ts
@@ -36,8 +36,8 @@
  */
 import { HttpHeaders } from '@angular/common/http';
 import { Injectable } from '@angular/core';
-import { forkJoin, Observable, of } from 'rxjs';
-import { catchError, map } from 'rxjs/operators';
+import { forkJoin, Observable, of, throwError } from 'rxjs';
+import { catchError, map, switchMap } from 'rxjs/operators';
 
 import { LogbookApiService } from '../api/logbook-api.service';
 import { Logger } from '../logger/logger';
@@ -131,6 +131,25 @@ export class LogbookService {
     );
   }
 
+   getOperationById(id: string, tenantIdentifier: number, accessContractId: string): Observable<Event> {
+    const headers = new HttpHeaders({
+      'X-Tenant-Id': tenantIdentifier.toString(),
+      'X-Access-Contract-Id': accessContractId
+    });
+
+    return this.logbookApi.findOperationById(id, headers).pipe(
+      switchMap((response) => {
+        if (!response || !response.$results || response.$results.length === 0) {
+          return throwError(`getOperationById error: no result for operation with id ${id}`);
+        }
+
+        return of(response);
+      }),
+      map((response) => response.$results.length === 1 ? LogbookApiService.toEvent(response.$results[0]) : null)
+    );
+  }
+
+
 }
 
 function flattenChildEvents(acc: Event[], current: Event): Event[] {
diff --git a/ui/ui-frontend/package-lock.json b/ui/ui-frontend/package-lock.json
index 70e1bfb3..2b551c33 100644
--- a/ui/ui-frontend/package-lock.json
+++ b/ui/ui-frontend/package-lock.json
@@ -643,7 +643,6 @@
           "dev": true,
           "optional": true,
           "requires": {
-            "bindings": "^1.5.0",
             "nan": "^2.12.1"
           }
         },
@@ -844,7 +843,7 @@
     },
     "@angular/material-moment-adapter": {
       "version": "8.2.3",
-      "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/@angular/material-moment-adapter/-/material-moment-adapter-8.2.3.tgz",
+      "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-8.2.3.tgz",
       "integrity": "sha512-x0WE9MyQajqzGPYKm8eHcDmWWlwiobOX9rZ+V5uqY80fsvm2czk6TYnc1drFYcPAHIaIcx7je7NYOULPF1rTpw==",
       "requires": {
         "tslib": "^1.7.1"
@@ -2958,16 +2957,6 @@
       "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
       "dev": true
     },
-    "bindings": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
-      "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "file-uri-to-path": "1.0.0"
-      }
-    },
     "blob": {
       "version": "0.0.5",
       "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/blob/-/blob-0.0.5.tgz",
@@ -5719,13 +5708,6 @@
         }
       }
     },
-    "file-uri-to-path": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
-      "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
-      "dev": true,
-      "optional": true
-    },
     "fileset": {
       "version": "2.0.3",
       "resolved": "https://nexus.dev.programmevitam.fr/repository/npm-group/fileset/-/fileset-2.0.3.tgz",
@@ -12982,6 +12964,7 @@
     },
     "ui-frontend-common": {
       "version": "file:../ui-frontend-common/ui-frontend-common-0.1.0.tgz",
+      "integrity": "sha512-RluantRkfYcd+qFzfD/DYQ9huDtpU+mCjAi3ugR9csL+q30ssKDjeR1yK7c11n85Sbd9hVMg1R9m0oarN/P0RA==",
       "requires": {
         "@angular/animations": "8.2.14",
         "@angular/cdk": "^8.2.3",
@@ -13511,7 +13494,6 @@
           "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
           "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
           "dev": true,
-          "optional": true,
           "requires": {
             "is-extendable": "^0.1.0"
           }
@@ -13536,7 +13518,6 @@
           "dev": true,
           "optional": true,
           "requires": {
-            "bindings": "^1.5.0",
             "nan": "^2.12.1"
           }
         },
@@ -13555,7 +13536,6 @@
           "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
           "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
           "dev": true,
-          "optional": true,
           "requires": {
             "kind-of": "^3.0.2"
           }
@@ -13565,7 +13545,6 @@
           "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
           "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
           "dev": true,
-          "optional": true,
           "requires": {
             "is-buffer": "^1.1.5"
           }
@@ -13924,7 +13903,6 @@
           "dev": true,
           "optional": true,
           "requires": {
-            "bindings": "^1.5.0",
             "nan": "^2.12.1"
           }
         },
diff --git a/ui/ui-frontend/projects/referential/src/app/app-routing.module.ts b/ui/ui-frontend/projects/referential/src/app/app-routing.module.ts
index c2d22edd..b1ac9e59 100644
--- a/ui/ui-frontend/projects/referential/src/app/app-routing.module.ts
+++ b/ui/ui-frontend/projects/referential/src/app/app-routing.module.ts
@@ -111,6 +111,15 @@ const routes: Routes = [
     data: {appId: 'PROBATIVE_VALUE_APP'}
   },
   // =====================================================
+  //                      SUPERVISION API
+  // =====================================================
+  {
+    path: 'supervision-api',
+    loadChildren: () => import('./supervision-api/api-supervision.module').then(m => m.ApiSupervisionModule),
+    canActivate: [AuthGuard, AppGuard],
+    data: { appId: 'SUPERVISION_API_APP' }
+  },
+  // =====================================================
   //                       DSL
   // =====================================================
   {
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-detail.component.html b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-detail.component.html
new file mode 100644
index 00000000..4ea07567
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-detail.component.html
@@ -0,0 +1,83 @@
+<div class="vitamui-sidepanel">
+  <div class="vitamui-sidepanel-header">
+    <ng-container *ngIf="!isPopup">
+      <button class="btn-popup" role="button" (click)="openPopup()"><i class="vitamui-icon vitamui-icon-pin"></i></button>
+    </ng-container>
+    <button class="btn-close" role="button" (click)="emitClose()"><i class="material-icons">close</i></button>
+
+    <div class="header-container">
+      <div class="title">
+        <div class="status-badge-mini" [ngClass]="event | eventTypeBadgeClass">
+          <i class="vitamui-icon vitamui-icon-box-hand no-margin"></i>
+        </div>
+        <h2>{{ event?.id }}</h2>
+      </div>
+    </div>
+  </div>
+  <div class="vitamui-sidepanel-body">
+    <mat-tab-group class="preview-tab-group">
+      <mat-tab label="Informations" i18n-label="Information tab@@eventDetailTabInformation">
+
+        <div class="read-only-field">
+          <label>Catégorie d'opération</label>
+          <div class="word-break">{{ event?.typeProc }}</div>
+        </div>
+
+        <div class="panel-row">
+          <div class="read-only-field">
+            <label>Identifiants des agents externes</label>
+            <div class="word-break">{{ event?.agIdExt }}</div>
+          </div>
+          <div class="read-only-field">
+            <label>Contrat associé</label>
+            <div class="word-break">{{ event?.rightsStatementIdentifier }}</div>
+          </div>
+        </div>
+
+        <div class="panel-row">
+          <div class="read-only-field">
+            <label>Identification de l'application</label>
+            <div class="word-break">{{ event?.agIdApp }}</div>
+          </div>
+          <div class="read-only-field">
+            <label>Numéro de transaction</label>
+            <div class="word-break">{{ event?.idRequest }}</div>
+          </div>
+        </div>
+
+        <div class="panel-row">
+          <div class="read-only-field">
+            <label>Identification de l'opération</label>
+            <div class="word-break">{{ event?.objectId }}</div>
+          </div>
+          <div class="read-only-field">
+            <label>Acteur(s) interne(s)</label>
+            <div class="word-break">{{ event?.agId }}</div>
+          </div>
+        </div>
+
+        <div class="read-only-field">
+          <label>Rapport</label>
+          <div>-</div>
+        </div>
+
+        <div class="read-only-field">
+          <label>Informations complémentaires sur l'opération</label>
+          <div class="word-break">{{ event?.data }}</div>
+        </div>
+
+        <div class="read-only-field">
+          <label>Message</label>
+          <div>{{ (event | lastEvent)?.outMessage }}</div>
+        </div>
+
+      </mat-tab>
+      <mat-tab label="Historique" i18n-label="History tab@@eventDetailTabInformation">
+          <vitamui-common-history-events [events]="event?.events"></vitamui-common-history-events>
+      </mat-tab>
+    </mat-tab-group>
+  </div>
+  <div class="vitamui-sidepanel-loading-overlay" *ngIf="loading" @fadeInOut>
+    <mat-spinner color="accent" diameter="40"></mat-spinner>
+  </div>
+</div>
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-detail.component.scss b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-detail.component.scss
new file mode 100644
index 00000000..51a2cb70
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-detail.component.scss
@@ -0,0 +1,43 @@
+.title {
+    max-width: 504px;
+
+    h2 {
+        word-break: break-all;
+    }
+
+    .vitamui-icon.no-margin {
+        margin-right: 0;
+    }
+
+    .status-badge-mini {
+        margin-right: 10px;
+
+        &:after {
+            margin-left: -11px;
+            margin-top: -11px;
+            width: 9px;
+            height: 9px;
+        }
+    }
+}
+
+.panel-row {
+    display: flex;
+}
+
+.word-break {
+    word-break: break-all;
+}
+
+.vitamui-sidepanel-loading-overlay {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    background: rgba(255, 255, 255, 0.5);
+    z-index: 1;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+}
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-detail.component.spec.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-detail.component.spec.ts
new file mode 100644
index 00000000..99694f35
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-detail.component.spec.ts
@@ -0,0 +1,73 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+import { AuthService, LogbookService } from 'ui-frontend-common';
+
+import { NO_ERRORS_SCHEMA } from '@angular/core';
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { ActivatedRoute } from '@angular/router';
+
+import { EventTypeBadgeClassPipe } from '../api-supervision-list/event-type-badge-class.pipe';
+import { LastEventPipe } from '../api-supervision-list/last-event.pipe';
+import { ApiSupervisionDetailComponent } from './api-supervision-detail.component';
+
+describe('ApiSupervisionDetailComponent', () => {
+  let component: ApiSupervisionDetailComponent;
+  let fixture: ComponentFixture<ApiSupervisionDetailComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ ApiSupervisionDetailComponent, EventTypeBadgeClassPipe, LastEventPipe ],
+      providers: [
+        { provide: LogbookService, useValue: {} },
+        { provide: AuthService, useValue: {} },
+        { provide: ActivatedRoute, useValue: {} },
+      ],
+      schemas: [NO_ERRORS_SCHEMA]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(ApiSupervisionDetailComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-detail.component.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-detail.component.ts
new file mode 100644
index 00000000..8c21b4dc
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-detail.component.ts
@@ -0,0 +1,119 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';
+import { ActivatedRoute } from '@angular/router';
+import { trigger, style, transition, animate } from '@angular/animations';
+import { AuthService, Event, LogbookService } from 'ui-frontend-common';
+
+
+@Component({
+  selector: 'app-api-supervision-detail',
+  templateUrl: './api-supervision-detail.component.html',
+  styleUrls: ['./api-supervision-detail.component.scss'],
+  animations: [
+    trigger('fadeInOut', [
+      transition(':enter', [
+        style({ opacity: 0 }),
+        animate('200ms', style({ opacity: 1 })),
+      ]),
+      transition(':leave', [
+        style({ opacity: 1 }),
+        animate('200ms', style({ opacity: 0 })),
+      ]),
+    ])
+  ]
+})
+export class ApiSupervisionDetailComponent implements OnInit, OnChanges {
+
+  @Input() eventId: string;
+
+  @Input() tenantIdentifier: number;
+  @Input() isPopup: boolean;
+
+  @Output() closePanel = new EventEmitter();
+
+  event: Event;
+  loading: boolean;
+
+  constructor(private logbookService: LogbookService, private authService: AuthService, private route: ActivatedRoute) {
+  }
+
+  ngOnInit() {
+  }
+
+  ngOnChanges(changes: SimpleChanges) {
+    if (changes.eventId || changes.tenantIdentifier) {
+      this.refreshEvents();
+    }
+  }
+
+  openPopup() {
+    window.open('/api-supervision/tenant/' + this.tenantIdentifier + '/event/' + this.event.id,
+      'detailPopup', 'width=584, height=713, resizable=no, location=no');
+    this.emitClose();
+  }
+
+  closePopup() {
+    window.close();
+  }
+
+  emitClose() {
+    this.closePanel.emit();
+  }
+
+  private refreshEvents() {
+    if (!this.tenantIdentifier || !this.eventId) {
+      return;
+    }
+
+    const tenant = this.authService.getTenantByAppAndIdentifier(this.route.snapshot.data.appId, this.tenantIdentifier);
+
+    if (!tenant) {
+      return;
+    }
+
+    const accessContractLogbookIdentifier = tenant.accessContractLogbookIdentifier || '';
+
+    this.loading = true;
+    this.logbookService.getOperationById(this.eventId, this.tenantIdentifier, accessContractLogbookIdentifier)
+      .subscribe((event) => {
+        this.event = event;
+        this.loading = false;
+      });
+  }
+
+}
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-popup.component.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-popup.component.ts
new file mode 100644
index 00000000..57c281ed
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-detail/api-supervision-popup.component.ts
@@ -0,0 +1,68 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+import { Component, OnInit } from '@angular/core';
+import { ActivatedRoute } from '@angular/router';
+
+@Component({
+  selector: 'app-api-supervision-popup',
+  template: `
+    <app-api-supervision-detail
+      (closePanel)="closePopup()"
+      [eventId]="eventId"
+      [tenantIdentifier]="tenantIdentifier"
+      [isPopup]="true"
+    ></app-api-supervision-detail>
+  `
+})
+export class ApiSupervisionPopupComponent implements OnInit {
+
+  eventId: string;
+  tenantIdentifier: number;
+
+  constructor(private route: ActivatedRoute) {
+  }
+
+  ngOnInit() {
+    this.eventId = this.route.snapshot.paramMap.get('id');
+    this.tenantIdentifier = +this.route.snapshot.paramMap.get('tenantIdentifier');
+  }
+
+  closePopup() {
+    window.close();
+  }
+
+}
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/api-supervision-list.component.html b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/api-supervision-list.component.html
new file mode 100644
index 00000000..008526d3
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/api-supervision-list.component.html
@@ -0,0 +1,81 @@
+<table class="vitamui-table" vitamuiCommonInfiniteScroll (vitamuiScroll)="onScroll()">
+  <thead>
+    <tr>
+      <th style="width: 60px;" class="no-first-cell-padding">
+        <i class="vitamui-icon vitamui-row-icon"></i>
+      </th>
+
+      <th>
+        <div class="vitamui-table-header">
+          <span i18n="@@apiSupervisionListIdentifiantHeader">Identifiant</span>
+        </div>
+      </th>
+
+      <th>
+        <div class="vitamui-table-header">
+          <span i18n="@@apiSupervisionListOperationHeader">Opération</span>
+        </div>
+      </th>
+
+      <th>
+        <div class="vitamui-table-header">
+          <span i18n="@@apiSupervisionListStartDateHeader">Date de création</span>
+        </div>
+      </th>
+
+      <th>
+        <div class="vitamui-table-header">
+          <span i18n="@@apiSupervisionListEndDateHeader">Fin d'exécution</span>
+        </div>
+      </th>
+
+      <th>
+        <div class="vitamui-table-header">
+          <span i18n="@@apiSupervisionListStatusHeader">Statut</span>
+        </div>
+      </th>
+
+      <th>
+        <div class="vitamui-table-header">
+          <span i18n="@@apiSupervisionListStepHeader">Etape</span>
+        </div>
+      </th>
+
+    </tr>
+  </thead>
+  <tbody>
+    <tr *ngFor="let event of dataSource; let index = index" (click)="selectEvent(event)" class="vitamui-table-row">
+      <td style="width:60px;" class="no-first-cell-padding">
+        <div class="vitamui-cell-icon aligned">
+          <div class="status-badge" [ngClass]="event | eventTypeBadgeClass">
+            <i class="vitamui-icon vitamui-icon-ingest vitamui-row-icon status-badge"></i>
+          </div>
+        </div>
+      </td>
+      <td><div class="vitamui-cell-content break-content" [title]="event.id">{{ event.id }}</div></td>
+      <td><div class="vitamui-cell-content" [ngClass]="event | eventTypeColorClass"><vitamui-common-event-type-label [key]="event.type"></vitamui-common-event-type-label></div></td>
+      <td>
+        <div class="vitamui-cell-content">{{ event.dateTime | date:'dd/MM/yyyy' }}</div>
+        <div class="vitamui-cell-sub-content cell-content-bold">
+          <span>{{ event.dateTime | date:'hh:mm:ss' }}</span>
+        </div>
+      </td>
+      <td>
+        <div class="vitamui-cell-content">{{ (event | lastEvent).dateTime | date:'dd/MM/yyyy' }}</div>
+        <div class="vitamui-cell-sub-content cell-content-bold">
+          <span>{{ (event | lastEvent).dateTime | date:'hh:mm:ss' }}</span>
+        </div>
+      </td>
+      <td><div class="vitamui-cell-content" [ngClass]="event | eventTypeColorClass">{{ (event | lastEvent).outcome }}</div></td>
+      <td><div class="vitamui-cell-content cell-content-bold break-content" [ngClass]="event | eventTypeColorClass">{{ (event | lastEvent).type }}</div></td>
+    </tr>
+  </tbody>
+</table>
+
+<div class="vitamui-table-footer">
+  <mat-spinner *ngIf="pending" diameter="50" color="accent"></mat-spinner>
+  <button *ngIf="!pending && infiniteScrollDisabled && logbookSearchService.canLoadMore" (click)="loadMore()" class="btn"
+    i18n="Show more results@@tableMoreResultButton">
+    Afficher plus de résultats...
+  </button>
+</div>
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/api-supervision-list.component.scss b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/api-supervision-list.component.scss
new file mode 100644
index 00000000..6de9e2a2
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/api-supervision-list.component.scss
@@ -0,0 +1,29 @@
+@import "~ui-frontend-common/sass/variables/colors";
+
+.cell-content-bold {
+    color: $charcoal-grey;
+    font-size: 15px;
+    font-weight: bold;
+}
+
+.vitamui-cell-content {
+    &.success {
+        color: #74C31C;
+    }
+
+    &.warning {
+        color: $mustard-yellow;
+    }
+
+    &.error {
+        color: $red;
+    }
+}
+
+.break-content {
+    word-break: break-all;
+}
+
+.fixed-layout {
+    table-layout: auto;
+}
\ No newline at end of file
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/api-supervision-list.component.spec.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/api-supervision-list.component.spec.ts
new file mode 100644
index 00000000..10d14148
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/api-supervision-list.component.spec.ts
@@ -0,0 +1,72 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+import { EMPTY } from 'rxjs';
+
+import { NO_ERRORS_SCHEMA } from '@angular/core';
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { LogbookSearchService } from '../logbook-search.service';
+import { ApiSupervisionListComponent } from './api-supervision-list.component';
+import { EventTypeBadgeClassPipe } from './event-type-badge-class.pipe';
+import { EventTypeColorClassPipe } from './event-type-color-class.pipe';
+import { LastEventPipe } from './last-event.pipe';
+
+describe('ApiSupervisionListComponent', () => {
+  let component: ApiSupervisionListComponent;
+  let fixture: ComponentFixture<ApiSupervisionListComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ ApiSupervisionListComponent, LastEventPipe, EventTypeColorClassPipe, EventTypeBadgeClassPipe ],
+      providers: [
+        { provide: LogbookSearchService, useValue: { search: () => EMPTY } },
+      ],
+      schemas: [NO_ERRORS_SCHEMA]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(ApiSupervisionListComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/api-supervision-list.component.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/api-supervision-list.component.ts
new file mode 100644
index 00000000..199a7e3c
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/api-supervision-list.component.ts
@@ -0,0 +1,87 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+import { DEFAULT_PAGE_SIZE, Direction, Event, InfiniteScrollTable, PageRequest } from 'ui-frontend-common';
+
+import {
+  Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges
+} from '@angular/core';
+
+import { EventFilter } from '../event-filter.interface';
+import { LogbookSearchService } from '../logbook-search.service';
+
+@Component({
+  selector: 'app-api-supervision-list',
+  templateUrl: './api-supervision-list.component.html',
+  styleUrls: ['./api-supervision-list.component.scss']
+})
+export class ApiSupervisionListComponent extends InfiniteScrollTable<Event> implements OnInit, OnChanges {
+
+  @Input() tenantIdentifier: number;
+  @Input() filters: Readonly<EventFilter>;
+
+  @Output() eventClick = new EventEmitter<Event>();
+
+  orderBy = 'name';
+  direction = Direction.ASCENDANT;
+
+  constructor(public logbookSearchService: LogbookSearchService) {
+    super(logbookSearchService);
+  }
+
+  ngOnInit() {
+    this.refreshList();
+  }
+
+  ngOnChanges(changes: SimpleChanges) {
+    if (changes.tenantIdentifier || changes.filters) {
+      this.refreshList();
+    }
+  }
+
+  refreshList() {
+    const pageRequest = new PageRequest(0, DEFAULT_PAGE_SIZE, this.orderBy, this.direction);
+
+    const query = JSON.stringify(LogbookSearchService.buildVitamQuery(pageRequest, this.filters));
+
+    this.search(new PageRequest(0, DEFAULT_PAGE_SIZE, this.orderBy, this.direction, query));
+  }
+
+  selectEvent(event: Event) {
+    this.eventClick.emit(event);
+  }
+
+}
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/event-type-badge-class.pipe.spec.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/event-type-badge-class.pipe.spec.ts
new file mode 100644
index 00000000..a0bab9d4
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/event-type-badge-class.pipe.spec.ts
@@ -0,0 +1,44 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+import { EventTypeBadgeClassPipe } from './event-type-badge-class.pipe';
+
+describe('EventTypeBadgeClassPipe', () => {
+  it('create an instance', () => {
+    const pipe = new EventTypeBadgeClassPipe();
+    expect(pipe).toBeTruthy();
+  });
+});
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/event-type-badge-class.pipe.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/event-type-badge-class.pipe.ts
new file mode 100644
index 00000000..3ee25f52
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/event-type-badge-class.pipe.ts
@@ -0,0 +1,67 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+import { Event } from 'ui-frontend-common';
+
+import { Pipe, PipeTransform } from '@angular/core';
+
+const classMap: { [key: string]: string } = {
+  OK: 'status-badge-green',
+  WARNING: 'status-badge-orange',
+  KO: 'status-badge-red',
+  FATAL: 'status-badge-red'
+};
+
+@Pipe({
+  name: 'eventTypeBadgeClass'
+})
+export class EventTypeBadgeClassPipe implements PipeTransform {
+
+  transform(event: Event): string {
+    if (!event || !event.events || event.events.length <= 0) {
+      return 'status-badge-grey';
+    }
+
+    const lastEvent = event.events[event.events.length - 1];
+
+    if (lastEvent.outcome === 'OK' && event.type === lastEvent.type) {
+      return 'status-badge-green';
+    }
+
+    return classMap[lastEvent.outcome] || 'status-badge-grey';
+  }
+
+}
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/event-type-color-class.pipe.spec.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/event-type-color-class.pipe.spec.ts
new file mode 100644
index 00000000..74c71da8
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/event-type-color-class.pipe.spec.ts
@@ -0,0 +1,44 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+import { EventTypeColorClassPipe } from './event-type-color-class.pipe';
+
+describe('EventTypeClassColorPipe', () => {
+  it('create an instance', () => {
+    const pipe = new EventTypeColorClassPipe();
+    expect(pipe).toBeTruthy();
+  });
+});
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/event-type-color-class.pipe.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/event-type-color-class.pipe.ts
new file mode 100644
index 00000000..00a4bafa
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/event-type-color-class.pipe.ts
@@ -0,0 +1,67 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+import { Pipe, PipeTransform } from '@angular/core';
+import { Event } from 'ui-frontend-common';
+
+const colorClassMap: { [key: string]: string } = {
+  OK: 'success',
+  WARNING: 'warning',
+  KO: 'error',
+  FATAL: 'error'
+};
+
+@Pipe({
+  name: 'eventTypeColorClass'
+})
+export class EventTypeColorClassPipe implements PipeTransform {
+
+  transform(event: Event): string {
+    if (!event.events || event.events.length <= 0) {
+      console.error('EventTypeColorClassPipe Error: event has no child event');
+      return '';
+    }
+
+    const lastEvent = event.events[event.events.length - 1];
+
+    if (lastEvent.outcome === 'OK' && event.type === lastEvent.type) {
+      return '';
+    }
+
+    return colorClassMap[lastEvent.outcome] || '';
+  }
+
+}
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/last-event.pipe.spec.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/last-event.pipe.spec.ts
new file mode 100644
index 00000000..466a1357
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/last-event.pipe.spec.ts
@@ -0,0 +1,44 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+import { LastEventPipe } from './last-event.pipe';
+
+describe('LastEventPipe', () => {
+  it('create an instance', () => {
+    const pipe = new LastEventPipe();
+    expect(pipe).toBeTruthy();
+  });
+});
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/last-event.pipe.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/last-event.pipe.ts
new file mode 100644
index 00000000..ce9c8fba
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-list/last-event.pipe.ts
@@ -0,0 +1,50 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+import { Event } from 'ui-frontend-common';
+
+import { Pipe, PipeTransform } from '@angular/core';
+
+@Pipe({
+  name: 'lastEvent'
+})
+export class LastEventPipe implements PipeTransform {
+
+  transform(event: Event): Event {
+    return event && event.events ? event.events[event.events.length - 1] : null;
+  }
+
+}
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-routing.module.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-routing.module.ts
new file mode 100644
index 00000000..899938a6
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision-routing.module.ts
@@ -0,0 +1,73 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { Route, RouterModule } from '@angular/router';
+import { VitamUITenantSelectComponent, TenantSelectionGuard, ActiveTenantGuard } from 'ui-frontend-common';
+import { ApiSupervisionComponent } from './api-supervision.component';
+
+const routes: Route[] = [
+  {
+    path: '',
+    redirectTo: 'tenant',
+    pathMatch: 'full'
+  },
+  {
+    path: 'tenant',
+    component: VitamUITenantSelectComponent,
+    pathMatch: 'full',
+    canActivate: [TenantSelectionGuard]
+  },
+  {
+    path: 'tenant/:tenantIdentifier',
+    component: ApiSupervisionComponent,
+    canActivate: [ActiveTenantGuard]
+  }
+];
+
+
+@NgModule({
+  declarations: [],
+  imports: [
+    CommonModule,
+    RouterModule.forChild(routes)
+  ],
+  exports: [
+    RouterModule
+  ]
+})
+export class ApiSupervisionRoutingModule { }
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.component.html b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.component.html
new file mode 100644
index 00000000..b5773e24
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.component.html
@@ -0,0 +1,89 @@
+<mat-sidenav-container [autosize]="true" [hasBackdrop]="false">
+
+  <mat-sidenav #panel mode="side" position="end" [fixedInViewport]="true">
+    <app-api-supervision-detail *ngIf="openedItem" [tenantIdentifier]="tenantIdentifier" [eventId]="openedItem?.id"
+      (closePanel)="closePanel()"></app-api-supervision-detail>
+
+  </mat-sidenav>
+  <mat-sidenav-content>
+
+    <div class="vitamui-header">
+      <div class="vitamui-container">
+        <vitamui-common-navbar [appId]="appId" [hideTenantMenu]="false" [hideCustomerMenu]="true" (tenantSelect)="changeTenant($event)"></vitamui-common-navbar>
+        <div class="controls">
+          <h2 i18n="@@apiSupervisionPageTitle">
+            <img src="assets/mini-logo-vitam.png"> Supervision des <strong>API</strong>s
+          </h2>
+
+          <div class="actions">
+
+            <button class="btn secondary" (click)="refreshList()">
+              <i class="vitamui-icon vitamui-icon-refresh"></i> <span>Rafraîchir</span>
+            </button>
+
+            <button class="btn more-actions" [matMenuTriggerFor]="moreMenu">
+              <i class="material-icons">more_horiz</i> <span i18n="@@apiSupervisionMoreActionsButton">Autres actions</span>
+            </button>
+
+            <mat-menu #moreMenu="matMenu" [overlapTrigger]="false" class="more-actions-menu" xPosition="before">
+              <span mat-menu-item i18n="@@apiSupervisionComingSoon">
+                Bientôt
+              </span>
+
+            </mat-menu>
+          </div>
+        </div>
+
+        <div class="filter-controls">
+
+          <form [formGroup]="dateRangeFilterForm" class="date-filter-container">
+            <div class="date-filter-container">
+              <div class="date-filter">
+                <span *ngIf="!dateRangeFilterForm.get('startDate').value;else showStartDate" (click)="pickerStart.open()"
+                  i18n="@@apiSupervisionStartDate">Date de début</span>
+                <ng-template #showStartDate>
+                  <span (click)="pickerStart.open()">{{ dateRangeFilterForm.get('startDate').value | date:'dd/MM/yyyy'
+                    }}</span>
+                  <i class="material-icons clear-date-icon clickable" (click)="clearDate('startDate')">clear</i>
+                </ng-template>
+                <input class="hidden" size="0" [matDatepicker]="pickerStart" formControlName="startDate" [max]="dateRangeFilterForm.get('endDate').value">
+                <mat-datepicker #pickerStart></mat-datepicker>
+              </div>
+              <div class="date-filter">
+                <span *ngIf="!dateRangeFilterForm.get('endDate').value; else showEndDate" (click)="pickerEnd.open()"
+                  i18n="@@apiSupervisionEndDate">Date de fin</span>
+                <ng-template #showEndDate><span (click)="pickerEnd.open()">{{ dateRangeFilterForm.get('endDate').value
+                    | date:'dd/MM/yyyy' }} </span> <i class="material-icons clear-date-icon clickable" (click)="clearDate('endDate')">clear</i></ng-template>
+                <input class="hidden" size="0" [matDatepicker]="pickerEnd" formControlName="endDate" [min]="dateRangeFilterForm.get('startDate').value">
+                <mat-datepicker #pickerEnd></mat-datepicker>
+              </div>
+            </div>
+          </form>
+        </div>
+
+        <div class="custom-flex-controls">
+
+          <button class="btn" (click)="toggleTypeFilter('INGEST')" [class.active]="filters?.type === 'INGEST'">
+            <i class="vitamui-icon" i18n="@@apiSupervisionFilterIngest"></i> <span>Entrées</span>
+          </button>
+
+          <button class="btn" (click)="toggleTypeFilter('ELIMINATION')" [class.active]="filters?.type === 'ELIMINATION'">
+            <i class="vitamui-icon" i18n="@@apiSupervisionFilterElimination"></i> <span>Eliminations</span>
+          </button>
+
+          <button class="btn" (click)="toggleTypeFilter('MASTERDATA')" [class.active]="filters?.type === 'MASTERDATA'">
+            <i class="vitamui-icon" i18n="@@apiSupervisionFilterMasterData"></i> <span>Données de base</span>
+          </button>
+        </div>
+
+      </div>
+    </div>
+
+    <div class="vitamui-body vitamui-container">
+      <app-api-supervision-list [filters]="filters" [tenantIdentifier]="tenantIdentifier" (eventClick)="openPanel($event)"></app-api-supervision-list>
+    </div>
+
+  </mat-sidenav-content>
+
+
+</mat-sidenav-container>
\ No newline at end of file
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.component.scss b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.component.scss
new file mode 100644
index 00000000..6c1aeb44
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.component.scss
@@ -0,0 +1,31 @@
+@import "~ui-frontend-common/sass/variables/colors";
+
+.vitamui-header {
+    background-image: none;
+
+    .controls {
+        margin-top: 57.5px;
+
+        h2 {
+            font-weight: 300;
+            font-size: 28px;
+
+            > img {
+                vertical-align: middle;
+                width: 37px;
+                margin-right: 17px;
+            }
+        }
+    }
+}
+
+.filter-banner-container {
+  display: flex;
+  height: 70px;
+  margin-left: 10px;
+}
+
+.custom-flex-controls{
+    text-align: right;
+    justify-content: space-between;
+}
\ No newline at end of file
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.component.spec.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.component.spec.ts
new file mode 100644
index 00000000..0d10fca2
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.component.spec.ts
@@ -0,0 +1,83 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+
+import { GlobalEventService, ENVIRONMENT } from 'ui-frontend-common';
+
+import { NO_ERRORS_SCHEMA } from '@angular/core';
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { ReactiveFormsModule } from '@angular/forms';
+import { MatMenuModule } from '@angular/material';
+import { ActivatedRoute, Router } from '@angular/router';
+
+import { ApiSupervisionComponent } from './api-supervision.component';
+import { EMPTY } from 'rxjs';
+import { LogbookSearchService } from './logbook-search.service';
+import { environment } from '../../environments/environment';
+
+describe('ApiSupervisionComponent', () => {
+  let component: ApiSupervisionComponent;
+  let fixture: ComponentFixture<ApiSupervisionComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      imports: [
+        MatMenuModule,
+        ReactiveFormsModule
+      ],
+      declarations: [ApiSupervisionComponent],
+      providers: [
+        { provide: ActivatedRoute, useValue: { paramMap: EMPTY, data: EMPTY } },
+        { provide: LogbookSearchService, useValue: { search: () => EMPTY } },
+        { provide: Router, useValue: { navigate: () => { } } },
+        { provide: GlobalEventService, useValue: { pageEvent: EMPTY, customerEvent: EMPTY, tenantEvent: EMPTY } },
+        { provide: ENVIRONMENT, useValue: environment }
+      ],
+      schemas: [NO_ERRORS_SCHEMA]
+    })
+      .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(ApiSupervisionComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.component.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.component.ts
new file mode 100644
index 00000000..da8b33f7
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.component.ts
@@ -0,0 +1,127 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+import { GlobalEventService, SidenavPage } from 'ui-frontend-common';
+
+import { Component, OnInit, ViewChild } from '@angular/core';
+import { FormBuilder, FormGroup } from '@angular/forms';
+import { ActivatedRoute, Router } from '@angular/router';
+
+import { ApiSupervisionListComponent } from './api-supervision-list/api-supervision-list.component';
+import { EventFilter } from './event-filter.interface';
+
+@Component({
+  selector: 'app-api-supervision',
+  templateUrl: './api-supervision.component.html',
+  styleUrls: ['./api-supervision.component.scss']
+})
+export class ApiSupervisionComponent extends SidenavPage<any> implements OnInit {
+
+  dateRangeFilterForm: FormGroup;
+  tenantIdentifier: number;
+  filters: Readonly<EventFilter> = {};
+
+  @ViewChild(ApiSupervisionListComponent, { static: true }) list: ApiSupervisionListComponent;
+
+  constructor(
+    private route: ActivatedRoute,
+    private router: Router,
+    private formBuilder: FormBuilder,
+    globalEventService: GlobalEventService
+  ) {
+    super(route, globalEventService);
+
+    this.route.paramMap.subscribe((paramMap) => this.tenantIdentifier = + paramMap.get('tenantIdentifier'));
+
+    this.dateRangeFilterForm = this.formBuilder.group({
+      startDate: null,
+      endDate: null
+    });
+
+    this.dateRangeFilterForm.valueChanges.subscribe((value) => {
+      this.filters = {
+        type: this.filters.type,
+        status: this.filters.status,
+        dateRange: value
+      };
+    });
+  }
+
+  ngOnInit() {
+    if (!this.list) {
+      console.error('ApiSupervisionComponent Error: no list in the template');
+    }
+  }
+
+  changeTenant(tenantIdentifier: number) {
+    this.router.navigate(['..', tenantIdentifier], { relativeTo: this.route });
+  }
+
+  clearDate(date: 'startDate' | 'endDate') {
+    if (date === 'startDate') {
+      this.dateRangeFilterForm.get(date).reset(null, { emitEvent: false });
+    } else if (date === 'endDate') {
+      this.dateRangeFilterForm.get(date).reset(null, { emitEvent: false });
+    } else {
+      console.error('clearDate() error: unknown date ' + date);
+    }
+  }
+
+  refreshList() {
+    if (!this.list) {
+      return;
+    }
+
+    this.list.refreshList();
+  }
+
+  toggleTypeFilter(type: 'INGEST' | 'ELIMINATION' | 'MASTERDATA') {
+    this.filters = {
+      type: (!this.filters.type || this.filters.type !== type) ? type : null,
+      status: this.filters.status,
+      dateRange: this.filters.dateRange
+    };
+  }
+
+  toggleStatusFilter(status: 'RUNNING' | 'ERROR' | 'DONE') {
+    this.filters = {
+      type: this.filters.type,
+      status: (!this.filters.status || this.filters.status !== status) ? status : null,
+      dateRange: this.filters.dateRange
+    };
+  }
+
+}
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.module.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.module.ts
new file mode 100644
index 00000000..8fa48390
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/api-supervision.module.ts
@@ -0,0 +1,82 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+import { VitamUICommonModule } from 'ui-frontend-common';
+
+import { CommonModule } from '@angular/common';
+import { NgModule } from '@angular/core';
+import { ReactiveFormsModule } from '@angular/forms';
+import {
+  MatDatepickerModule, MatMenuModule, MatProgressSpinnerModule, MatSidenavModule, MatTabsModule, MatNativeDateModule
+} from '@angular/material';
+
+import {
+  ApiSupervisionDetailComponent
+} from './api-supervision-detail/api-supervision-detail.component';
+import {
+  ApiSupervisionPopupComponent
+} from './api-supervision-detail/api-supervision-popup.component';
+import { ApiSupervisionListComponent } from './api-supervision-list/api-supervision-list.component';
+import { EventTypeBadgeClassPipe } from './api-supervision-list/event-type-badge-class.pipe';
+import { EventTypeColorClassPipe } from './api-supervision-list/event-type-color-class.pipe';
+import { LastEventPipe } from './api-supervision-list/last-event.pipe';
+import { ApiSupervisionComponent } from './api-supervision.component';
+import { ApiSupervisionRoutingModule } from './api-supervision-routing.module';
+
+@NgModule({
+  declarations: [
+    ApiSupervisionComponent,
+    ApiSupervisionListComponent,
+    ApiSupervisionDetailComponent,
+    ApiSupervisionPopupComponent,
+    LastEventPipe,
+    EventTypeColorClassPipe,
+    EventTypeBadgeClassPipe,
+  ],
+  imports: [
+    CommonModule,
+    MatSidenavModule,
+    MatMenuModule,
+    MatDatepickerModule,
+    MatProgressSpinnerModule,
+    MatTabsModule,
+    ReactiveFormsModule,
+    VitamUICommonModule,
+    ApiSupervisionRoutingModule,
+    MatNativeDateModule
+  ]
+})
+export class ApiSupervisionModule { }
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/event-filter.interface.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/event-filter.interface.ts
new file mode 100644
index 00000000..7cabb0f1
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/event-filter.interface.ts
@@ -0,0 +1,41 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+export interface EventFilter {
+  type?: 'INGEST' | 'ELIMINATION' | 'MASTERDATA';
+  status?: 'RUNNING' | 'ERROR' | 'DONE';
+  dateRange?: { startDate: Date, endDate: Date };
+}
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/logbook-search.service.spec.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/logbook-search.service.spec.ts
new file mode 100644
index 00000000..be366cab
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/logbook-search.service.spec.ts
@@ -0,0 +1,58 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+
+import { LogbookApiService, LogbookService } from 'ui-frontend-common';
+
+import { HttpClientTestingModule } from '@angular/common/http/testing';
+import { TestBed } from '@angular/core/testing';
+
+import { LogbookSearchService } from './logbook-search.service';
+
+describe('LogbookSearchService', () => {
+  beforeEach(() => TestBed.configureTestingModule({
+    imports: [HttpClientTestingModule],
+    providers: [
+      { provide: LogbookService, useValue: {} },
+      { provide: LogbookApiService, useValue: {} },
+    ]
+  }));
+
+  it('should be created', () => {
+    const service: LogbookSearchService = TestBed.get(LogbookSearchService);
+    expect(service).toBeTruthy();
+  });
+});
diff --git a/ui/ui-frontend/projects/referential/src/app/supervision-api/logbook-search.service.ts b/ui/ui-frontend/projects/referential/src/app/supervision-api/logbook-search.service.ts
new file mode 100644
index 00000000..8d33ebb6
--- /dev/null
+++ b/ui/ui-frontend/projects/referential/src/app/supervision-api/logbook-search.service.ts
@@ -0,0 +1,114 @@
+/*
+ * Copyright French Prime minister Office/SGMAP/DINSIC/Vitam Program (2019-2020)
+ * and the signatories of the "VITAM - Accord du Contributeur" agreement.
+ *
+ * contact@programmevitam.fr
+ *
+ * This software is a computer program whose purpose is to implement
+ * implement a digital archiving front-office system for the secure and
+ * efficient high volumetry VITAM solution.
+ *
+ * This software is governed by the CeCILL-C license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-C
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-C license and that you accept its terms.
+ */
+import {
+  Event, LogbookApiService, PageRequest, SearchService, VitamSelectOperator, VitamSelectQuery
+} from 'ui-frontend-common';
+import * as moment from 'moment';
+
+import { HttpClient } from '@angular/common/http';
+import { Injectable } from '@angular/core';
+
+import { EventFilter } from './event-filter.interface';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class LogbookSearchService extends SearchService<Event> {
+
+  constructor(http: HttpClient, logbookApi: LogbookApiService) {
+    super(http, logbookApi);
+  }
+
+  static buildVitamQuery(pageRequest: PageRequest, filters: EventFilter): VitamSelectQuery {
+    const baseParameters: Partial<VitamSelectQuery> = {
+      $projection: {},
+      $filter: {
+        $limit: pageRequest.size,
+        $offset: Math.max(0, pageRequest.page - 1) * pageRequest.size,
+        $orderby: { evDateTime: -1 }
+      }
+    };
+
+    if (!filters) {
+      return {
+        $query: {} as VitamSelectOperator,
+        ...baseParameters
+      };
+    }
+
+    const queryOperators = this.buildQueryOperators(filters);
+
+    if (queryOperators.length === 0) {
+      return {
+        $query: {} as VitamSelectOperator,
+        ...baseParameters
+      };
+    }
+
+    return {
+      $query: {
+        $and: [
+          ...this.buildQueryOperators(filters),
+        ]
+      },
+      ...baseParameters
+    };
+  }
+
+  private static buildQueryOperators(filters: EventFilter): VitamSelectOperator[] {
+    const operators: VitamSelectOperator[] = [];
+
+    if (filters.type) {
+      operators.push({ $eq: { evTypeProc: filters.type } });
+    }
+
+    if (filters.status === 'ERROR') {
+      operators.push({ $in: { 'events.outcome': ['KO', 'FATAL'] } });
+    }
+
+    if (filters.dateRange && filters.dateRange.startDate) {
+      operators.push({ $gte: { evDateTime: filters.dateRange.startDate } });
+    }
+
+    if (filters.dateRange && filters.dateRange.endDate) {
+      operators.push({ $lte: { evDateTime: moment(filters.dateRange.endDate).endOf('day') } });
+    }
+
+    return operators;
+  }
+
+}
diff --git a/ui/ui-frontend/projects/referential/src/assets/mini-logo-vitam.png b/ui/ui-frontend/projects/referential/src/assets/mini-logo-vitam.png
new file mode 100644
index 0000000000000000000000000000000000000000..a13d7317b3a456085352397e7933f2d2a39b076f
GIT binary patch
literal 43081
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
AVgLXD

literal 0
HcmV?d00001

diff --git a/ui/ui-frontend/projects/referential/src/sass/styles.scss b/ui/ui-frontend/projects/referential/src/sass/styles.scss
index 523304e3..de83712e 100644
--- a/ui/ui-frontend/projects/referential/src/sass/styles.scss
+++ b/ui/ui-frontend/projects/referential/src/sass/styles.scss
@@ -20,8 +20,8 @@ $grid-gutter-width: 20px;
 @import "tooltip";
 @import "text";
 
-@import '../../../../dist/sass/icons/vitamui-icons.css';
-@import '../../../../dist/sass/styles';
+@import '../../../../dist/vitamui-library/src/sass/icons/vitamui-icons.css';
+@import '../../../../dist/vitamui-library/src/sass/styles';
 
 
 vitamui-common-slide-toggle {
diff --git a/ui/ui-identity/${maven.multiModuleProjectDirectory}/ui/ui-frontend/package-lock.json b/ui/ui-identity/${maven.multiModuleProjectDirectory}/ui/ui-frontend/package-lock.json
new file mode 100644
index 00000000..48e341a0
--- /dev/null
+++ b/ui/ui-identity/${maven.multiModuleProjectDirectory}/ui/ui-frontend/package-lock.json
@@ -0,0 +1,3 @@
+{
+  "lockfileVersion": 1
+}
diff --git a/ui/ui-portal/${maven.multiModuleProjectDirectory}/ui/ui-frontend/package-lock.json b/ui/ui-portal/${maven.multiModuleProjectDirectory}/ui/ui-frontend/package-lock.json
new file mode 100644
index 00000000..48e341a0
--- /dev/null
+++ b/ui/ui-portal/${maven.multiModuleProjectDirectory}/ui/ui-frontend/package-lock.json
@@ -0,0 +1,3 @@
+{
+  "lockfileVersion": 1
+}
diff --git a/ui/ui-referential/${maven.multiModuleProjectDirectory}/ui/ui-frontend/package-lock.json b/ui/ui-referential/${maven.multiModuleProjectDirectory}/ui/ui-frontend/package-lock.json
new file mode 100644
index 00000000..48e341a0
--- /dev/null
+++ b/ui/ui-referential/${maven.multiModuleProjectDirectory}/ui/ui-frontend/package-lock.json
@@ -0,0 +1,3 @@
+{
+  "lockfileVersion": 1
+}
-- 
GitLab