diff --git a/src/webui/Dockerfile b/src/webui/Dockerfile
index 55e67b670f36812a55cf60e411cf137bc5b8a2ee..204b6f7311d4d182d830ef5483204790e165599b 100644
--- a/src/webui/Dockerfile
+++ b/src/webui/Dockerfile
@@ -84,6 +84,8 @@ COPY --chown=webui:webui src/service/__init__.py service/__init__.py
 COPY --chown=webui:webui src/service/client/. service/client/
 COPY --chown=webui:webui src/slice/__init__.py slice/__init__.py
 COPY --chown=webui:webui src/slice/client/. slice/client/
+COPY --chown=webui:webui src/app/__init__.py app/__init__.py
+COPY --chown=webui:webui src/app/client/. app/client/
 COPY --chown=webui:webui src/webui/. webui/
 COPY --chown=webui:webui src/bgpls_speaker/__init__.py bgpls_speaker/__init__.py
 COPY --chown=webui:webui src/bgpls_speaker/client/. bgpls_speaker/client/
diff --git a/src/webui/service/__init__.py b/src/webui/service/__init__.py
index 9b6950aeb0f3fda630db87d5d80ad2bf730fac3d..be1cbce2ac6bee75b446853edb7bfa4cdef0885f 100644
--- a/src/webui/service/__init__.py
+++ b/src/webui/service/__init__.py
@@ -19,6 +19,7 @@ from flask_healthz import healthz, HealthError
 from common.tools.grpc.Tools import grpc_message_to_json
 from context.client.ContextClient import ContextClient
 from device.client.DeviceClient import DeviceClient
+from app.client.AppClient import AppClient
 
 def get_working_context() -> str:
     return session['context_uuid'] if 'context_uuid' in session else '---'
@@ -37,6 +38,10 @@ def readiness():
         device_client = DeviceClient()
         device_client.connect()
         device_client.close()
+        # DEPENDENCY QKD
+        app_client = AppClient()
+        app_client.connect()
+        app_client.close()
     except Exception as e:
         raise HealthError("Can't connect with the service: {:s}".format(str(e))) from e
 
@@ -49,7 +54,10 @@ def json_to_list(json_str : str) -> List[Union[str, Tuple[str, str]]]:
     if isinstance(data, dict):
         return [('kv', (key, value)) for key, value in data.items()]
     elif isinstance(data, list):
-        return [('item', ', '.join(data))]
+        if len(data) == 1 and isinstance(data[0], dict):
+            return [('kv', (key, value)) for key, value in data[0].items()]
+        else:
+            return [('item', ', '.join([str(d) for d in data]))]
     else:
         return [('item', str(data))]
 
@@ -99,6 +107,9 @@ def create_app(use_config=None, web_app_root=None):
     from webui.service.link.routes import link              # pylint: disable=import-outside-toplevel
     app.register_blueprint(link)
 
+    from webui.service.app.routes import app as _app             # pylint: disable=import-outside-toplevel
+    app.register_blueprint(_app)
+
     from webui.service.policy_rule.routes import policy_rule # pylint: disable=import-outside-toplevel
     app.register_blueprint(policy_rule)
 
@@ -113,4 +124,4 @@ def create_app(use_config=None, web_app_root=None):
 
     if web_app_root is not None:
         app.wsgi_app = SetSubAppMiddleware(app.wsgi_app, web_app_root)
-    return app
+    return app
\ No newline at end of file
diff --git a/src/webui/service/__main__.py b/src/webui/service/__main__.py
index e9a906e8a431e287911547abc4065d9d9364ccb4..f58b815b43163f030fa05eff51652d1c356e0dd5 100644
--- a/src/webui/service/__main__.py
+++ b/src/webui/service/__main__.py
@@ -33,6 +33,7 @@ def main():
     logging.basicConfig(level=log_level)
     logger = logging.getLogger(__name__)
 
+    # DEPENDENCY QKD
     wait_for_environment_variables([
         get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST     ),
         get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC),
@@ -42,6 +43,8 @@ def main():
         get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC),
         get_env_var_name(ServiceNameEnum.SLICE,   ENVVAR_SUFIX_SERVICE_HOST     ),
         get_env_var_name(ServiceNameEnum.SLICE,   ENVVAR_SUFIX_SERVICE_PORT_GRPC),
+        get_env_var_name(ServiceNameEnum.APP,   ENVVAR_SUFIX_SERVICE_HOST     ),
+        get_env_var_name(ServiceNameEnum.APP,   ENVVAR_SUFIX_SERVICE_PORT_GRPC),
     ])
 
     logger.info('Starting...')
@@ -66,4 +69,4 @@ def main():
     return 0
 
 if __name__ == '__main__':
-    sys.exit(main())
+    sys.exit(main())
\ No newline at end of file