From 86cf8366162f8181128adcf07f17801fd6cfc118 Mon Sep 17 00:00:00 2001 From: Hongwei Date: Thu, 24 Apr 2025 17:19:33 +0200 Subject: [PATCH 1/2] refactor/add aLiveHtml and related menu entry for enhanced API status display --- .../src/main/scala/bootstrap/liftweb/Boot.scala | 1 + obp-api/src/main/scala/code/snippet/WebUI.scala | 9 +++++++++ obp-api/src/main/webapp/alive.html | 14 ++++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 obp-api/src/main/webapp/alive.html diff --git a/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala b/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala index 3f96a4e4f..c918a9b08 100644 --- a/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala +++ b/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala @@ -563,6 +563,7 @@ class Boot extends MdcLoggable { Menu.i("Plain") / "plain", Menu.i("Static") / "static", Menu.i("SDKs") / "sdks", + Menu.i("Alive") / "alive", Menu.i("Debug") / "debug", Menu.i("debug-basic") / "debug" / "debug-basic", Menu.i("debug-localization") / "debug" / "debug-localization", diff --git a/obp-api/src/main/scala/code/snippet/WebUI.scala b/obp-api/src/main/scala/code/snippet/WebUI.scala index a4cbc372e..674c4aed1 100644 --- a/obp-api/src/main/scala/code/snippet/WebUI.scala +++ b/obp-api/src/main/scala/code/snippet/WebUI.scala @@ -158,6 +158,15 @@ class WebUI extends MdcLoggable{ def aboutText: CssSel = { "#main-about-text *" #> scala.xml.Unparsed(getWebUiPropsValue("webui_index_page_about_section_text", "")) } + + def aLiveHtml: CssSel = { + "#get-disabled-versions *" #> scala.xml.Unparsed(APIUtil.getDisabledVersions.toString())& + "#get-enabled-versions *" #> scala.xml.Unparsed(APIUtil.getEnabledVersions.toString())& + "#get-disabled-endpoint-operation-ids *" #> scala.xml.Unparsed(APIUtil.getDisabledEndpointOperationIds.toString())& + "#get-enabled-endpoint-operation-ids *" #> scala.xml.Unparsed(APIUtil.getEnabledEndpointOperationIds.toString())& + "#alive-disabled-api-mode *" #> scala.xml.Unparsed(getWebUiPropsValue("server_mode", "apis,portal")) + } + def topText: CssSel = { "#top-text *" #> scala.xml.Unparsed(getWebUiPropsValue("webui_top_text", "")) diff --git a/obp-api/src/main/webapp/alive.html b/obp-api/src/main/webapp/alive.html new file mode 100644 index 000000000..d6dbbd683 --- /dev/null +++ b/obp-api/src/main/webapp/alive.html @@ -0,0 +1,14 @@ +
+
+

Disabled Versions:

+
+

Enabled Versions:

+
+

Disabled Endpoint Operation Ids:

+
+

Enabled Endpoint Operation Ids:

+
+

API Mode:

+
+
+
\ No newline at end of file From 6a9ab7cc9b3e033879be8228ac0109ddbceb940d Mon Sep 17 00:00:00 2001 From: Hongwei Date: Fri, 25 Apr 2025 10:51:07 +0200 Subject: [PATCH 2/2] refactor/add alive page to SiteMap for improved API status testing --- obp-api/src/main/scala/bootstrap/liftweb/Boot.scala | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala b/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala index c918a9b08..d08b19a3d 100644 --- a/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala +++ b/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala @@ -559,11 +559,13 @@ class Boot extends MdcLoggable { logger.info (s"props_identifier is : ${APIUtil.getPropsValue("props_identifier", "NONE-SET")}") + // This will work for both portal and API modes. This page is used for testing if the API is running properly. + val alivePage = List( Menu.i("Alive") / "alive") + val commonMap = List(Menu.i("Home") / "index") ::: List( Menu.i("Plain") / "plain", Menu.i("Static") / "static", Menu.i("SDKs") / "sdks", - Menu.i("Alive") / "alive", Menu.i("Debug") / "debug", Menu.i("debug-basic") / "debug" / "debug-basic", Menu.i("debug-localization") / "debug" / "debug-localization", @@ -596,12 +598,12 @@ class Boot extends MdcLoggable { Menu.i("confirm-bg-consent-request-redirect-uri") / "confirm-bg-consent-request-redirect-uri" >> AuthUser.loginFirst,//OAuth consent page, Menu.i("confirm-vrp-consent-request") / "confirm-vrp-consent-request" >> AuthUser.loginFirst,//OAuth consent page, Menu.i("confirm-vrp-consent") / "confirm-vrp-consent" >> AuthUser.loginFirst //OAuth consent page - ) ++ accountCreation ++ Admin.menus + ) ++ accountCreation ++ Admin.menus++ alivePage // Build SiteMap val sitemap = APIUtil.getPropsValue("server_mode", "apis,portal") match { case mode if mode == "portal" => commonMap - case mode if mode == "apis" => List() + case mode if mode == "apis" => alivePage case mode if mode.contains("apis") && mode.contains("portal") => commonMap case _ => commonMap }