From 747d984d4ee3ff6c49aa00c46741660677335402 Mon Sep 17 00:00:00 2001 From: LarsLemos Date: Tue, 12 Sep 2023 07:50:10 +0200 Subject: [PATCH 1/4] Add Workflow for FrontEnd Image and Deployment into Dev Server --- .github/workflows/.ssh/known_hosts | 29 ++++++++ .github/workflows/.ssh/known_hosts.old | 27 +++++++ .github/workflows/node.js.yml | 97 +++++++++++++++++++++++++- frontend/Dockerfile | 35 ++++++++++ frontend/nginx.conf | 47 +++++++++++++ frontend/ohri-config.json | 90 ++++++++++++++++++++++++ frontend/ohri_logo_dark.svg | 1 + frontend/ohri_logo_light.svg | 1 + frontend/spa-build-config.json | 40 +++++++++++ frontend/startup.sh | 59 ++++++++++++++++ 10 files changed, 425 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/.ssh/known_hosts create mode 100644 .github/workflows/.ssh/known_hosts.old create mode 100644 frontend/Dockerfile create mode 100644 frontend/nginx.conf create mode 100644 frontend/ohri-config.json create mode 100644 frontend/ohri_logo_dark.svg create mode 100644 frontend/ohri_logo_light.svg create mode 100644 frontend/spa-build-config.json create mode 100644 frontend/startup.sh diff --git a/.github/workflows/.ssh/known_hosts b/.github/workflows/.ssh/known_hosts new file mode 100644 index 000000000..ff8cf1042 --- /dev/null +++ b/.github/workflows/.ssh/known_hosts @@ -0,0 +1,29 @@ +[reports.globalhealthapp.net]:3220 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIACgwMS6u0tdPP+q8TKJoJHApgwWVPTN6yxjgNpCt0Uh +[reports.globalhealthapp.net]:3220 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDRz8siwpz3lx7FiH9oqTvc3UU1tG0f1olpN336Ap1yetytAGl5wuWZJSeUrIMNSHd+/jATG2XLjEZy/EHZdaFVJ3M+8XHucGeEq6Zh+IEByIs5DDBe1SGDtI7mUTOouMV+sX2Xc52XLfQp7/iFRqyuiNkzPc56mXumuIJINzVGofoSFlsbESu4FkSrd6Q+TsVmTZ0xSGddJODl/N5RnxW38RZpc5KEJT6joqpMEFPOKt/DMjYVrraGVZoH+m3X7NjbCyh+23To6NXS9W/xqmZTIkkz3ulYSXYy/TDBE0E5p6+Fj78xri4OnVj1kcEWS0s2p/sZlcpNfjUQetXb5SXQq8WsG/pyDzck3z8P3X/i/xzJgZwFa25SnRlBA2Huw/1xYo0F01pP4KN42+aJ6zB0REUgDIYy/3yrzlF0y7BsI2UNdB+i7SEq3ualDvqiH+DXs08AVjKVn0W/bZ9LTWKnfgl4PEsj2eRi4fqy9NoS+5O0oPYVTsay6Hcl4aryyl8= +[reports.globalhealthapp.net]:3220 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJQ5Ao12jbjd8Id4p1Rtss9hnwwLTuGO6N1uFz+93doBcDS0/gavN3s8zLZKGauXfowBSr3eObcCDlE/crB14gg= +[reports.globalhealthapp.net]:3221 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOygbQjEgORAFfNfOc3buSNYFUZnw9vy+kdPYIkyKdK6 +[reports.globalhealthapp.net]:3221 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDs9pkqOg1HdUxbHHCvAdtCvdyTNK/EAn4uqaa6VJDmjygzwAqhO4GpW/24QVQCmOm+RJifyu+Ig+C3+V0yQr9xFjyzibV+GmS7kL2qnYLj4IXu26yv5h23ElucZQRwj4VUhoham3qQmJm5u+OMmTov168bmYiYtjYVK1fVY9VoB4nC+a3ked9eGqvz5HfV2awwxW50z7O9rWcTh72iGEcBDZ1vhXpIBGofttKZTG3SlapvXYqDG6f3FQZccJBBqWyZj1CDV+JA/Rw4F9rHuQoGsA5eDIL+Y28J5/MH9GLZY+SEZDLm5t0Zk1geUJ4shZRMrJ8UzYZWzW9zO90rZJMka+v8fKLjBoPQWwEEAVaZRJqD0Iu7j8euoU/bAFtY0YVS10IdSg4QlHZZrib2WL4hNScTfBqoecUKbgJDRVWopMkI5icvkaXOm6CtnpRC9/MJLwegNnnjbFL0lWMmgf2d0aadMj9q+myaunrv9PMhU/fcBKAWEC5fbIDYY+f66DE= +[reports.globalhealthapp.net]:3221 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJRCJoA018J5IyP6aNhrCnngQVIRRelJAP37LcOwOLrarGCPS+V2k0PhHzWtgZ9mrVV1gNTddcAx+mCGbr+mTFI= +[histac-avn-s08.globalhealthapp.net]:2208 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBJCAQR0lzwEtKWTyVUZAnVxhkO3B94am6nxe2f4n047 +[reports.globalhealthapp.net]:2202 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBgN67V7KXlsbtYZmvigm8Wdnrf34OOwgfMAXp8fK1DC +[reports.globalhealthapp.net]:2202 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDG/mSO9Z7+jdk7n7b0LW3uWmQ5lJvJv/m9aIiDMbmX2+tjbNn434XWFLJmigUGKJwWvTZSecZqA3Ww+G/DHz3/ib+RzvVtqLz4HwQqPNo6rFKQzKoD1PZ7jLthmaZhoApKe3zsmyZ92QBxbdsjkY/Ua/saRPTx2abUw+Zj9kj/v989TdxuxFynyQlsY4ecqbZY/alCF6spXmr9T1XBgrJdGhayT/D1vyzQr6IRsg4UiXopO5pVLTnK/KCbq/YucVXw3DLAIlAnn8/UfziUJmNnIVxP7KDLCRjclo2lpbtZW613GnAeWJqtSfKnN4S3qYMxCE9ahFzakr3EdpdRT+NeTOxAGNWiLl3HnCf3VsLI/vwV8aWtTwcMs036f1K4Xcfc+0aQ6AOw+aQSPwkT7Y2jirBpFakb5zr7TB9GBpB9VSCLkgknrXazkysT3P+efdyt7/CchCd3YbymmWlfBjRxPyZVILCp7oaNIsj6wgmO2TbONmptQCawgOUWPtGiSmE= +[reports.globalhealthapp.net]:2202 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBE0Xy+itrE63mbqAMhqC/QTlGWJTxs8ltdLEzoSk+7FIG4QPf+Avm0CHHg8H3y6hDsgDihvDzDlIxy0NvXG05g8= +[172.19.0.17]:2217 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILWM7opBoJrMayTHyMy8eRogs6IBf1Zh+dWZ7mBiFJ/4 +[dhis-dev.globalhealthapp.net]:2202 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBgN67V7KXlsbtYZmvigm8Wdnrf34OOwgfMAXp8fK1DC +[172.19.0.11]:2311 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL3dfvsZx+iuvPyjeKQ1bA8HaAZMs0QxaI4xkL6dNAbb +[172.19.0.11]:2311 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC0cY1VBZ74jcLn2mHEavUCXgbHJDxwU25JRbyTldlliOPabZ/VbktTjV2MYr5wBeA8vbrByuEXOcbqLy1aQL84rTj2UHi7GRBdap0HFxTXDYHjsjZf+6PMF5uoH2BSynDlnO9A5sfWmpjQrqruJjH3W+U7b5vdSiIkIxtiHIHWX/2uEsLybxTOeKnGHw76hvHcaKXA/FjH1CcSl90Rcv90eaE+yP3uAxlnqBsEY6Ure9gchxXAKFHKMwznfvI4Zuin7L6cTKw0V1iEuTMTtUYZC38QiGw7Zw8E6Ip8gvK5wSZkcNQQzW/GS+NxtPXuMbb1taNernva8qt3sZ7QAnlzPNes26KOBrI7ZxJmLnNKclemLK6DxbO6Qc9Z6xnUtuX0gBS+23lI0QU7ip+/IduQcU7oNsVAYVlYGxcEJbbK2XVe2rmwl1q6/dhkOvGh/q9n0hKGLwu60fDHNYJ+7MBMzcOiJuBi1evc/TA+qxG1IIUumhC0oHPp0GyRouebtJk= +[172.19.0.11]:2311 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDaGYm5lsxHrethdn0BiSSh7ea2zwVdUZaFlyDZAdq56kZoBORba5g9uLVOzElJL0kEHjDzP+EkIHe4HbobBN1Y= +ozonehis-ozonedocker-zkdn0yhimgv.ssh.ws-eu102.gitpod.io ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEteVPsV9FFNQQJ1C7Ou15WyxMiVGW5fUQ6EDD1QdXDPRSZJDjpIUP22wFtCCMNG5nzkDsrFKcVulF8NtKIIJ9s= +[172.19.0.17]:2217 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDNeaLW/50iPZta7AIrhTMh1m44wE1cqd/JNt9mafO2jJv24i+DqagzTQl5DU93agBzkmAllEcgkCN8hKyuFJiunThxi2heH2Ra4Mx78NVqcr4MgXsErev74b0uGOGfiWBb1JVtah8H2xN8n/XZNV1h5x5zARnyL2c7PbjW2wJ22rm7LFRogkDhJVGDoXmmB9idJTYYKgcFFxqcuE3KfRK8WoIfPBEAFXFvODAVEETKxS7lFPYGsGvQ+a+RWOYuUGt6OcX+W1Jfg8z9rHB454Vv3igrpSuW0ntDpaTP6b3fNIb0lbAXJ2sCie+J1rKbZJjanjMEDcStlN20PukK6bAJGEdP64hGDLkgTs7wJrLusiEJHd8iwvnjJX5Xdtjwxe9IX8oBrhFj/CtWKHPTVT6eGH8F/6lamxM24RPPsk6BzVARehjvypgpS8dbNgAZK+VSFlp9g4e+bqMJdZ4k/a43tt27vdt93ab1jOfhGrx0HZjseg6VPjz1NK2CDr+wR10= +[172.19.0.17]:2217 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBB05z08lXlpc7hKeEo/gtr3OEmSqVNcwpMm76hEYaVncQtFUCCIAy/7ro0PtNuv5+SY4hyKQvQnm/SXXtzrMwOA= +[172.19.0.16]:2216 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ8uZouAI7t0AvhyWiWbmth/oGwUybxP0T3MnWXRc7DE +[172.19.0.16]:2216 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC96U94CgkNLjeY3epfXgVIgpsn13GRH0Xt4JUVDh8EU7j6qWO1WA7BdsLJja03nD7dlbbcWvJ86aZy7UIOP6rHiX5C5ai3KvUWtNteLcY3VjFm8iJwYhjc/2si0v5QR7dPen66eAMb4+XMRPuYOyDl+gxdtTxiapSHPmNrwEH1HMUajNoVHv3Sc3MHkmvKLGSzcJ2XppQcoOnb1LqzzLjXGG/8EfMsRJTSvOGGWv516oJBHHRZi/mlhWB+Cw9qKc6i/SPIho2EnVi1OxR5pn04/LcmOzYFhW/xWuiLFaVPAN9io/c1Lnc1wYTLoj/pV3wtADUdhNIqQG00/GcjOCKjhjoOljrpK/9dPdRjriK6PAXXUL3LSQhgLLMYuNPNw+P96AlKtm8avtjdcK/LHLnWon1kzG77EK/gIuunYXit7g2dQksSO58jgH1mcU9vkn2/BCPW0oIvVVuB+NPtnEXHi6bOLCDdWpR58tFlaUWOQtFnI7ETMseES1VsaA/5QL0= +[172.19.0.16]:2216 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOCD3ui0jyXn0RMPc1nXFEj+QvqdA0u/oE8SIddKS0gwTZkQh1Do+zdG5qz86oZnR5NzJs4JUWoZZRk7kRoUQFc= +[reports.globalhealthapp.net]:3222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGSAgFw/vkMoR7QsODIk1Ygiif5fkdSiWiIkdor+JEOg +[20.172.182.46]:2202 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBgN67V7KXlsbtYZmvigm8Wdnrf34OOwgfMAXp8fK1DC +[172.19.0.19]:2319 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMsUKygZW46c4jC3VK9LKnyjQawdGzd06OXDXcYe9kmp +[172.19.0.19]:2319 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC3dmLr4v1gn3XrsQVEjgwfhfGDjySP2ReXd14prNz4ZHVGNuC2LhOPmKPyYaninGociWARR7TXSWf53OoNjmnA232A1Jtoy5ByUAcrNZjdAVg3wxqmbxKHUS4BVXA+h+hq0++Mf23uko+0gHytkK+YQc00b4o44p2evdznPWncfxyHbVsW6aRKjcxFKzSOaWSvResqOqSidYoJkX+ouDelMgMN/5ze8D+qDJrEnLWiaBwHIEOdzSW2WHyryLnFNthH7b4Xc4boUPZb4LUDx70jEFwFARK29e2/ne6pBRxSG9EI3YhM/haEIayJSh5/YgDgXubH5p3W1I2WNeIRBTagOO1vWeHo0QPmAwNUsqw04WT5U+EWbFH2EoYuIrHGjunHId9ZGAXkho23YJUjcK0cjZDx4Ar2E7DC54CjF1TezCuT6u8eFB2MByrIOF/dPmsU2bw0Wpcj/5sQn6bY3rHMlLA0rzRq+aTfaSkwO5GGR1ZYP8CMgUmM2y+Y++zeK08= +[172.19.0.19]:2319 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDjTnIhRbWWk/1RzlFtBr2UwuC4QVenCRj+/C+W6qqfr62fpo1zNeJ4vouUiCmEX7AAA4RetDnxkDmeDrsVtdKg= +[172.19.0.3]:2303 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFYaUTZZRIWq0WMmMaLH3hfPWKG0L5qwTi4Lk3wj0+l/ +[172.19.0.3]:2303 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCIWWnBV3mQOFdvEyG1/3qBAdLmmUGgcXhpiQd5C+Nz1CZlQksV59c/YVwNGNHCgu5iNYuUgTyYyqCRVFc01smSFRO0sM4W8hZPDEkdpulPKsvsLf3eZT9ZhZXqQVcUEjP7t43l+kh2vggd75+OY3Lyu8ZPD8eoGwKF/nKH5FsFWMG/adQGN01ofaXm5nRcwe0vn0y4D/f5t9dRO8EA1Pp961hJNrCC2FZ+19b2DBfhVA7zgFahOv+gj+MYzhbj7Emx+1nHuDkoJifwHuCYWCEHRg2iy2NpS39ejvEYwsUysWU2koXAU6yci2kkKjJeZACyzlmvTeNamg3hNiJEL37BOwu6h9TSpv4gdJxYlX7ZFH571lByQnjdzPg4cuYggFV8r9RphDd4SnejpqLh9/70Uo8dJB3fkNUmE51g6WFp09gqYZm6MEgMrbuogqNlcdTuudOEZi39a6H1QDOxkGrtYCVMsP0OuKn6/QOtLm1mgFzZ+ZVsXn4EBfN4ZaRvUj8= +[172.19.0.3]:2303 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBL3s91ZsImHa2cE3sqE5HQRzbgVEbeyXc9ucUQDQVX2sQoMw5x8WmF1jhpTpbS2IXLXdc2jCS8E5MB/6v2ABF2o= diff --git a/.github/workflows/.ssh/known_hosts.old b/.github/workflows/.ssh/known_hosts.old new file mode 100644 index 000000000..c971a020f --- /dev/null +++ b/.github/workflows/.ssh/known_hosts.old @@ -0,0 +1,27 @@ +[reports.globalhealthapp.net]:3220 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIACgwMS6u0tdPP+q8TKJoJHApgwWVPTN6yxjgNpCt0Uh +[reports.globalhealthapp.net]:3220 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDRz8siwpz3lx7FiH9oqTvc3UU1tG0f1olpN336Ap1yetytAGl5wuWZJSeUrIMNSHd+/jATG2XLjEZy/EHZdaFVJ3M+8XHucGeEq6Zh+IEByIs5DDBe1SGDtI7mUTOouMV+sX2Xc52XLfQp7/iFRqyuiNkzPc56mXumuIJINzVGofoSFlsbESu4FkSrd6Q+TsVmTZ0xSGddJODl/N5RnxW38RZpc5KEJT6joqpMEFPOKt/DMjYVrraGVZoH+m3X7NjbCyh+23To6NXS9W/xqmZTIkkz3ulYSXYy/TDBE0E5p6+Fj78xri4OnVj1kcEWS0s2p/sZlcpNfjUQetXb5SXQq8WsG/pyDzck3z8P3X/i/xzJgZwFa25SnRlBA2Huw/1xYo0F01pP4KN42+aJ6zB0REUgDIYy/3yrzlF0y7BsI2UNdB+i7SEq3ualDvqiH+DXs08AVjKVn0W/bZ9LTWKnfgl4PEsj2eRi4fqy9NoS+5O0oPYVTsay6Hcl4aryyl8= +[reports.globalhealthapp.net]:3220 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJQ5Ao12jbjd8Id4p1Rtss9hnwwLTuGO6N1uFz+93doBcDS0/gavN3s8zLZKGauXfowBSr3eObcCDlE/crB14gg= +[reports.globalhealthapp.net]:3221 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOygbQjEgORAFfNfOc3buSNYFUZnw9vy+kdPYIkyKdK6 +[reports.globalhealthapp.net]:3221 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDs9pkqOg1HdUxbHHCvAdtCvdyTNK/EAn4uqaa6VJDmjygzwAqhO4GpW/24QVQCmOm+RJifyu+Ig+C3+V0yQr9xFjyzibV+GmS7kL2qnYLj4IXu26yv5h23ElucZQRwj4VUhoham3qQmJm5u+OMmTov168bmYiYtjYVK1fVY9VoB4nC+a3ked9eGqvz5HfV2awwxW50z7O9rWcTh72iGEcBDZ1vhXpIBGofttKZTG3SlapvXYqDG6f3FQZccJBBqWyZj1CDV+JA/Rw4F9rHuQoGsA5eDIL+Y28J5/MH9GLZY+SEZDLm5t0Zk1geUJ4shZRMrJ8UzYZWzW9zO90rZJMka+v8fKLjBoPQWwEEAVaZRJqD0Iu7j8euoU/bAFtY0YVS10IdSg4QlHZZrib2WL4hNScTfBqoecUKbgJDRVWopMkI5icvkaXOm6CtnpRC9/MJLwegNnnjbFL0lWMmgf2d0aadMj9q+myaunrv9PMhU/fcBKAWEC5fbIDYY+f66DE= +[reports.globalhealthapp.net]:3221 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJRCJoA018J5IyP6aNhrCnngQVIRRelJAP37LcOwOLrarGCPS+V2k0PhHzWtgZ9mrVV1gNTddcAx+mCGbr+mTFI= +[histac-avn-s08.globalhealthapp.net]:2208 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBJCAQR0lzwEtKWTyVUZAnVxhkO3B94am6nxe2f4n047 +[reports.globalhealthapp.net]:2202 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBgN67V7KXlsbtYZmvigm8Wdnrf34OOwgfMAXp8fK1DC +[reports.globalhealthapp.net]:2202 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDG/mSO9Z7+jdk7n7b0LW3uWmQ5lJvJv/m9aIiDMbmX2+tjbNn434XWFLJmigUGKJwWvTZSecZqA3Ww+G/DHz3/ib+RzvVtqLz4HwQqPNo6rFKQzKoD1PZ7jLthmaZhoApKe3zsmyZ92QBxbdsjkY/Ua/saRPTx2abUw+Zj9kj/v989TdxuxFynyQlsY4ecqbZY/alCF6spXmr9T1XBgrJdGhayT/D1vyzQr6IRsg4UiXopO5pVLTnK/KCbq/YucVXw3DLAIlAnn8/UfziUJmNnIVxP7KDLCRjclo2lpbtZW613GnAeWJqtSfKnN4S3qYMxCE9ahFzakr3EdpdRT+NeTOxAGNWiLl3HnCf3VsLI/vwV8aWtTwcMs036f1K4Xcfc+0aQ6AOw+aQSPwkT7Y2jirBpFakb5zr7TB9GBpB9VSCLkgknrXazkysT3P+efdyt7/CchCd3YbymmWlfBjRxPyZVILCp7oaNIsj6wgmO2TbONmptQCawgOUWPtGiSmE= +[reports.globalhealthapp.net]:2202 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBE0Xy+itrE63mbqAMhqC/QTlGWJTxs8ltdLEzoSk+7FIG4QPf+Avm0CHHg8H3y6hDsgDihvDzDlIxy0NvXG05g8= +[172.19.0.17]:2217 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILWM7opBoJrMayTHyMy8eRogs6IBf1Zh+dWZ7mBiFJ/4 +[dhis-dev.globalhealthapp.net]:2202 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBgN67V7KXlsbtYZmvigm8Wdnrf34OOwgfMAXp8fK1DC +[172.19.0.11]:2311 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL3dfvsZx+iuvPyjeKQ1bA8HaAZMs0QxaI4xkL6dNAbb +[172.19.0.11]:2311 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC0cY1VBZ74jcLn2mHEavUCXgbHJDxwU25JRbyTldlliOPabZ/VbktTjV2MYr5wBeA8vbrByuEXOcbqLy1aQL84rTj2UHi7GRBdap0HFxTXDYHjsjZf+6PMF5uoH2BSynDlnO9A5sfWmpjQrqruJjH3W+U7b5vdSiIkIxtiHIHWX/2uEsLybxTOeKnGHw76hvHcaKXA/FjH1CcSl90Rcv90eaE+yP3uAxlnqBsEY6Ure9gchxXAKFHKMwznfvI4Zuin7L6cTKw0V1iEuTMTtUYZC38QiGw7Zw8E6Ip8gvK5wSZkcNQQzW/GS+NxtPXuMbb1taNernva8qt3sZ7QAnlzPNes26KOBrI7ZxJmLnNKclemLK6DxbO6Qc9Z6xnUtuX0gBS+23lI0QU7ip+/IduQcU7oNsVAYVlYGxcEJbbK2XVe2rmwl1q6/dhkOvGh/q9n0hKGLwu60fDHNYJ+7MBMzcOiJuBi1evc/TA+qxG1IIUumhC0oHPp0GyRouebtJk= +[172.19.0.11]:2311 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDaGYm5lsxHrethdn0BiSSh7ea2zwVdUZaFlyDZAdq56kZoBORba5g9uLVOzElJL0kEHjDzP+EkIHe4HbobBN1Y= +ozonehis-ozonedocker-zkdn0yhimgv.ssh.ws-eu102.gitpod.io ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEteVPsV9FFNQQJ1C7Ou15WyxMiVGW5fUQ6EDD1QdXDPRSZJDjpIUP22wFtCCMNG5nzkDsrFKcVulF8NtKIIJ9s= +[172.19.0.17]:2217 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDNeaLW/50iPZta7AIrhTMh1m44wE1cqd/JNt9mafO2jJv24i+DqagzTQl5DU93agBzkmAllEcgkCN8hKyuFJiunThxi2heH2Ra4Mx78NVqcr4MgXsErev74b0uGOGfiWBb1JVtah8H2xN8n/XZNV1h5x5zARnyL2c7PbjW2wJ22rm7LFRogkDhJVGDoXmmB9idJTYYKgcFFxqcuE3KfRK8WoIfPBEAFXFvODAVEETKxS7lFPYGsGvQ+a+RWOYuUGt6OcX+W1Jfg8z9rHB454Vv3igrpSuW0ntDpaTP6b3fNIb0lbAXJ2sCie+J1rKbZJjanjMEDcStlN20PukK6bAJGEdP64hGDLkgTs7wJrLusiEJHd8iwvnjJX5Xdtjwxe9IX8oBrhFj/CtWKHPTVT6eGH8F/6lamxM24RPPsk6BzVARehjvypgpS8dbNgAZK+VSFlp9g4e+bqMJdZ4k/a43tt27vdt93ab1jOfhGrx0HZjseg6VPjz1NK2CDr+wR10= +[172.19.0.17]:2217 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBB05z08lXlpc7hKeEo/gtr3OEmSqVNcwpMm76hEYaVncQtFUCCIAy/7ro0PtNuv5+SY4hyKQvQnm/SXXtzrMwOA= +[172.19.0.16]:2216 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ8uZouAI7t0AvhyWiWbmth/oGwUybxP0T3MnWXRc7DE +[172.19.0.16]:2216 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC96U94CgkNLjeY3epfXgVIgpsn13GRH0Xt4JUVDh8EU7j6qWO1WA7BdsLJja03nD7dlbbcWvJ86aZy7UIOP6rHiX5C5ai3KvUWtNteLcY3VjFm8iJwYhjc/2si0v5QR7dPen66eAMb4+XMRPuYOyDl+gxdtTxiapSHPmNrwEH1HMUajNoVHv3Sc3MHkmvKLGSzcJ2XppQcoOnb1LqzzLjXGG/8EfMsRJTSvOGGWv516oJBHHRZi/mlhWB+Cw9qKc6i/SPIho2EnVi1OxR5pn04/LcmOzYFhW/xWuiLFaVPAN9io/c1Lnc1wYTLoj/pV3wtADUdhNIqQG00/GcjOCKjhjoOljrpK/9dPdRjriK6PAXXUL3LSQhgLLMYuNPNw+P96AlKtm8avtjdcK/LHLnWon1kzG77EK/gIuunYXit7g2dQksSO58jgH1mcU9vkn2/BCPW0oIvVVuB+NPtnEXHi6bOLCDdWpR58tFlaUWOQtFnI7ETMseES1VsaA/5QL0= +[172.19.0.16]:2216 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOCD3ui0jyXn0RMPc1nXFEj+QvqdA0u/oE8SIddKS0gwTZkQh1Do+zdG5qz86oZnR5NzJs4JUWoZZRk7kRoUQFc= +[reports.globalhealthapp.net]:3222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGSAgFw/vkMoR7QsODIk1Ygiif5fkdSiWiIkdor+JEOg +[20.172.182.46]:2202 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBgN67V7KXlsbtYZmvigm8Wdnrf34OOwgfMAXp8fK1DC +[172.19.0.19]:2319 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMsUKygZW46c4jC3VK9LKnyjQawdGzd06OXDXcYe9kmp +[172.19.0.19]:2319 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC3dmLr4v1gn3XrsQVEjgwfhfGDjySP2ReXd14prNz4ZHVGNuC2LhOPmKPyYaninGociWARR7TXSWf53OoNjmnA232A1Jtoy5ByUAcrNZjdAVg3wxqmbxKHUS4BVXA+h+hq0++Mf23uko+0gHytkK+YQc00b4o44p2evdznPWncfxyHbVsW6aRKjcxFKzSOaWSvResqOqSidYoJkX+ouDelMgMN/5ze8D+qDJrEnLWiaBwHIEOdzSW2WHyryLnFNthH7b4Xc4boUPZb4LUDx70jEFwFARK29e2/ne6pBRxSG9EI3YhM/haEIayJSh5/YgDgXubH5p3W1I2WNeIRBTagOO1vWeHo0QPmAwNUsqw04WT5U+EWbFH2EoYuIrHGjunHId9ZGAXkho23YJUjcK0cjZDx4Ar2E7DC54CjF1TezCuT6u8eFB2MByrIOF/dPmsU2bw0Wpcj/5sQn6bY3rHMlLA0rzRq+aTfaSkwO5GGR1ZYP8CMgUmM2y+Y++zeK08= +[172.19.0.19]:2319 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDjTnIhRbWWk/1RzlFtBr2UwuC4QVenCRj+/C+W6qqfr62fpo1zNeJ4vouUiCmEX7AAA4RetDnxkDmeDrsVtdKg= +[172.19.0.3]:2303 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFYaUTZZRIWq0WMmMaLH3hfPWKG0L5qwTi4Lk3wj0+l/ diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index 23c3e6d51..ad6b44bf9 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -1,4 +1,4 @@ -name: OHRI CI +name: OHRI CI - on: push: @@ -167,3 +167,98 @@ jobs: privateKey: ${{ secrets.HISTAC_KEY}} port: ${{ secrets.HISTAC_PORT }} + + docker_devserver_frontend: + runs-on: ubuntu-latest + needs: docker_setup + + steps: + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Checkout + uses: actions/checkout@v3 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Build and push + uses: docker/build-push-action@v4 + with: + context: ./frontend + file: ./frontend/Dockerfile + platforms: linux/amd64,linux/arm64 + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ secrets.DOCKERHUB_USERNAME }}/ohri-dev-frontend:next,${{ secrets.DOCKERHUB_USERNAME }}/ohri-dev-frontend:ci_${{ github.run_number }} + cache-from: type=inline,ref=user/app:buildcache + cache-to: type=inline,ref=user/app:buildcache,mode=max + + dev_server_status: + if: github.ref == 'refs/heads/dev' + runs-on: ubuntu-latest + needs: docker_staging_backend + + steps: + - name: Wait for 5 minutos - Let Images reflect on Docker Hub + run: sleep 300 + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Copy files to /home/runner/ + run: | + ls -la -t + cp -r $GITHUB_WORKSPACE/.ssh/ /home/runner/ + + - name: List contents of /home/runner/ + run: ls -la /home/runner/ + + - name: webfactory/ssh-agent + uses: webfactory/ssh-agent@v0.8.0 + with: + ssh-private-key: ${{ secrets.LL_SSH_PRIVATE_KEY }} + + - name: Check SSH to remote OHRI Dev status + run: | + ssh-keygen -R 172.19.0.16 + + dev_server_connection_dev: + runs-on: ubuntu-latest + needs: dev_server_status + steps: + - name: SSH to remote OHRI Dev server + run: | + ssh -o StrictHostKeyChecking=no -T llemos@172.19.0.16 -p 2216 -J llemos@20.172.182.46 -p 2202 + ls -la -t && \ + cd /opt && \ + ls -la -t + + dev_deploy: + runs-on: ubuntu-latest + needs: dev_server_status + + if: (github.event_name == 'push' || github.event.pull_request.merged) + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: webfactory/ssh-agent + uses: webfactory/ssh-agent@v0.8.0 + + with: + ssh-private-key: ${{ secrets.LL_SSH_PRIVATE_KEY }} + + - name: SSH to remote OHRI Dev server via jump host + run: | + ssh -p 2216 \ + -o "UserKnownHostsFile=/dev/null" \ + -o "StrictHostKeyChecking=no" \ + -o "ProxyCommand=ssh -o StrictHostKeyChecking=no -W %h:%p llemos@20.172.182.46 -p 2202" \ + llemos@172.19.0.16 "\ + cd /opt && \ + docker compose -f docker-compose-ohri-dev.yml pull && \ + docker compose -f docker-compose-ohri-dev.yml stop && \ + docker compose -f docker-compose-ohri-dev.yml up -d" + \ No newline at end of file diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 000000000..be3a64f87 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,35 @@ +# syntax=docker/dockerfile:1.3 +FROM --platform=$BUILDPLATFORM node:18-alpine as dev + +ARG APP_SHELL_VERSION=next + +RUN mkdir -p /app +WORKDIR /app + +COPY spa-build-config.json . + +ARG CACHE_BUST +RUN npx --legacy-peer-deps openmrs@${APP_SHELL_VERSION:-next} assemble --manifest --mode config --config spa-build-config.json --target ./spa +RUN npx --legacy-peer-deps openmrs@${APP_SHELL_VERSION:-next} build --build-config spa-build-config.json --target ./spa +COPY ohri-config.json ./spa/ohri-config.json +COPY ohri_logo_dark.svg ./spa/ohri_logo_dark.svg +COPY ohri_logo_light.svg ./spa/ohri_logo_light.svg + +FROM nginx:1.23-alpine + +RUN apk update && \ + apk upgrade && \ + # add more utils for sponge to support our startup script + apk add --no-cache moreutils + +# clear any default files installed by nginx +RUN rm -rf /usr/share/nginx/html/* + +COPY startup.sh /usr/local/bin/startup.sh +RUN chmod +x /usr/local/bin/startup.sh + +COPY nginx.conf /etc/nginx/nginx.conf + +COPY --from=dev /app/spa /usr/share/nginx/html + +CMD ["/usr/local/bin/startup.sh"] diff --git a/frontend/nginx.conf b/frontend/nginx.conf new file mode 100644 index 000000000..6d696b310 --- /dev/null +++ b/frontend/nginx.conf @@ -0,0 +1,47 @@ +worker_processes 1; +user nobody; + +events { + worker_connections 1024; + multi_accept off; +} + +http { + include mime.types; + default_type application/octet-stream; + tcp_nopush on; + tcp_nodelay on; + sendfile on; + + keepalive_timeout 65; + + server { + listen 80; + root /usr/share/nginx/html; + index index.html; + + # redirect to home + location = / { + return 301 /home; + } + + # never cache the importmap + location ~* importmap\.json$ { + expires -1d; + try_files $uri =404; + } + + # handle anything with a "." that's not an HTML + # assume it's a static file + location ~* \.(?!html?)[^.]+$ { + expires 6M; + try_files $uri =404; + } + + # any other URL should serve the single page + location / { + expires -1d; + try_files /index.html =404; + } + } + } diff --git a/frontend/ohri-config.json b/frontend/ohri-config.json new file mode 100644 index 000000000..171420105 --- /dev/null +++ b/frontend/ohri-config.json @@ -0,0 +1,90 @@ +{ + "@openmrs/esm-patient-chart-app": { + "extensionSlots": { + "patient-chart-dashboard-slot": { + "remove": [ + "test-results-summary-dashboard", + "conditions-summary-dashboard", + "results-summary-dashboard", + "programs-summary-dashboard", + "allergies-summary-dashboard", + "attachments-results-summary-dashboard", + "drug-orders-summary-dashboard" + ] + }, + "action-menu-chart-items-slot": { + "remove": [ + "visit-note-nav-button", + "clinical-form-action-menu" + ] + } + }, + "notesConceptUuids": ["161011AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "437d1e25-e7ab-481c-aabc-01f21c6cdef1"], + "logo": { + "src": "ohri_logo_dark.svg" + } + }, + "@openmrs/esm-patient-banner-app": { + "extensionSlots": { + "patient-actions-slot": { + "remove": [ + "add-patient-to-patient-list-button", + "start-visit-button", + "stop-visit-button", + "cancel-visit-button", + "add-past-visit-button" + ] + } + } + }, + "@ohri/openmrs-esm-ohri-core-app": { + "extensionSlots": { + "ohri-dashboard-appointments-slot": { + "add": [ + "clinical-appointments-dashboard" + ] + }, + "ohri-dashboard-dispensing-slot": { + "add": [ + "dispensing-dashboard" + ] + } + } + }, + "@openmrs/esm-styleguide": { + "Brand color #1": "#1A3054", + "Brand color #2": "#131E35", + "Brand color #3": "#0078A6" + }, + "@openmrs/esm-primary-navigation-app": { + "extensionSlots": { + "app-menu-slot": { + "remove": [ + "dispensing-link" + ] + } + }, + "logo": { + "src": "ohri_logo_dark.svg" + } + }, + "@openmrs/esm-dispensing-app": { + "appName": "Dispensing" + }, + "@openmrs/esm-login-app": { + "logo": { + "src": "ohri_logo_light.svg" + } + }, + "@ohri/openmrs-esm-ohri-pmtct": { + "identifiers": { + "preferredIdentifierSource": "8549f706-7e85-4c1d-9424-217d50a2988b" + }, + "encounterTypes": { + "antenatal": "677d1a80-dbbe-4399-be34-aa7f54f11405", + "laborAndDelivery": "6dc5308d-27c9-4d49-b16f-2c5e3c759757", + "infantPostnatal": "af1f1b24-d2e8-4282-b308-0bf79b365584", + "motherPostnatal": "269bcc7f-04f8-4ddc-883d-7a3a0d569aad" + } + } +} diff --git a/frontend/ohri_logo_dark.svg b/frontend/ohri_logo_dark.svg new file mode 100644 index 000000000..c079de75a --- /dev/null +++ b/frontend/ohri_logo_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/ohri_logo_light.svg b/frontend/ohri_logo_light.svg new file mode 100644 index 000000000..462b6c665 --- /dev/null +++ b/frontend/ohri_logo_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/spa-build-config.json b/frontend/spa-build-config.json new file mode 100644 index 000000000..187d166ad --- /dev/null +++ b/frontend/spa-build-config.json @@ -0,0 +1,40 @@ +{ + "frontendModules": { + "@ohri/openmrs-esm-ohri-cervical-cancer-app": "next", + "@ohri/openmrs-esm-ohri-core-app": "next", + "@ohri/openmrs-esm-ohri-covid-app": "next", + "@ohri/openmrs-esm-ohri-form-render-app": "next", + "@ohri/openmrs-esm-ohri-hiv-app": "next", + "@ohri/openmrs-esm-ohri-pmtct": "next", + "@openmrs/esm-appointments-app": "next", + "@openmrs/esm-dispensing-app": "next", + "@openmrs/esm-form-builder-app": "next", + "@openmrs/esm-home-app": "next", + "@openmrs/esm-implementer-tools-app": "next", + "@openmrs/esm-login-app": "next", + "@openmrs/esm-outpatient-app": "next", + "@openmrs/esm-patient-allergies-app": "next", + "@openmrs/esm-patient-appointments-app": "next", + "@openmrs/esm-patient-attachments-app": "next", + "@openmrs/esm-patient-banner-app": "next", + "@openmrs/esm-patient-biometrics-app": "next", + "@openmrs/esm-patient-chart-app": "next", + "@openmrs/esm-patient-conditions-app": "next", + "@openmrs/esm-patient-forms-app": "next", + "@openmrs/esm-patient-immunizations-app": "next", + "@openmrs/esm-patient-list-app": "next", + "@openmrs/esm-patient-medications-app": "next", + "@openmrs/esm-patient-notes-app": "next", + "@openmrs/esm-patient-programs-app": "next", + "@openmrs/esm-patient-search-app": "next", + "@openmrs/esm-patient-test-results-app": "next", + "@openmrs/esm-patient-vitals-app": "next", + "@openmrs/esm-primary-navigation-app": "next", + "@openmrs/esm-patient-registration-app": "next", + "@openmrs/esm-devtools-app": "next" + }, + "spaPath": "$SPA_PATH", + "apiUrl": "$API_URL", + "configUrls": ["$SPA_CONFIG_URLS"], + "importmap": "$SPA_PATH/importmap.json" +} diff --git a/frontend/startup.sh b/frontend/startup.sh new file mode 100644 index 000000000..8785011f0 --- /dev/null +++ b/frontend/startup.sh @@ -0,0 +1,59 @@ +#!/bin/sh +set -e + +# if we are using the $IMPORTMAP_URL environment variable, we have to make this useful, +# so we change "importmap.json" into "$IMPORTMAP_URL" allowing it to be changed by envsubst +if [ -n "${IMPORTMAP_URL}" ]; then + if [ -n "$SPA_PATH" ]; then + [ -f "/usr/share/nginx/html/index.html" ] && \ + sed -i -e 's/\("|''\)$SPA_PATH\/importmap.json\("|''\)/\1$IMPORTMAP_URL\1/g' "/usr/share/nginx/html/index.html" + + [ -f "/usr/share/nginx/html/service-worker.js" ] && \ + sed -i -e 's/\("|''\)$SPA_PATH\/importmap.json\("|''\)/\1$IMPORTMAP_URL\1/g' "/usr/share/nginx/html/service-worker.js" + else + [ -f "/usr/share/nginx/html/index.html" ] && \ + sed -i -e 's/\("|''\)importmap.json\("|''\)/\1$IMPORTMAP_URL\1/g' "/usr/share/nginx/html/index.html" + + [ -f "/usr/share/nginx/html/service-worker.js" ] && \ + sed -i -e 's/\("|''\)importmap.json\("|''\)/\1$IMPORTMAP_URL\1/g' "/usr/share/nginx/html/service-worker.js" + fi +fi + +# setting the config urls to "" causes an error reported in the console, so if we aren't using +# the SPA_CONFIG_URLS, we remove it from the source, leaving config urls as [] +if [ -z "$SPA_CONFIG_URLS" ]; then + sed -i -e 's/"$SPA_CONFIG_URLS"//' "/usr/share/nginx/html/index.html" +# otherwise convert the URLs into a Javascript list +# we support two formats, a comma-separated list or a space separated list +else + old_IFS="$IFS" + if echo "$SPA_CONFIG_URLS" | grep , >/dev/null; then + IFS="," + fi + + CONFIG_URLS= + for url in $SPA_CONFIG_URLS; + do + if [ -z "$CONFIG_URLS" ]; then + CONFIG_URLS="\"${url}\"" + else + CONFIG_URLS="$CONFIG_URLS,\"${url}\"" + fi + done + + IFS="$old_IFS" + export SPA_CONFIG_URLS=$CONFIG_URLS + sed -i -e 's/"$SPA_CONFIG_URLS"/$SPA_CONFIG_URLS/' "/usr/share/nginx/html/index.html" +fi + +# Substitute environment variables in the html file +# This allows us to override parts of the compiled file at runtime +if [ -f "/usr/share/nginx/html/index.html" ]; then + envsubst '${IMPORTMAP_URL} ${SPA_PATH} ${API_URL} ${SPA_CONFIG_URLS}' < "/usr/share/nginx/html/index.html" | sponge "/usr/share/nginx/html/index.html" +fi + +if [ -f "/usr/share/nginx/html/service-worker.js" ]; then + envsubst '${IMPORTMAP_URL} ${SPA_PATH} ${API_URL}' < "/usr/share/nginx/html/service-worker.js" | sponge "/usr/share/nginx/html/service-worker.js" +fi + +exec nginx -g "daemon off;" From 4ff6ca1e8fb5e1e0c912a440b38e24e3933679e3 Mon Sep 17 00:00:00 2001 From: LarsLemos Date: Tue, 12 Sep 2023 07:51:48 +0200 Subject: [PATCH 2/4] Remove unsed steps from CI --- .github/workflows/node.js.yml | 40 ----------------------------------- 1 file changed, 40 deletions(-) diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index ad6b44bf9..7f1efc5b6 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -128,46 +128,6 @@ jobs: env: NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }} - working: - runs-on: ubuntu-latest - - needs: pre_release - - if: ${{ github.ref == 'refs/heads/working' }} - - steps: - # Update the Microfrontends to reflect what we have in the Working branch - - uses: garygrossgarten/github-action-ssh@release - name: Run the Update MicroFronEnd Script - with: - command: cd /usr/share/tomcat/microfrontends/working && /bin/bash update_microfrontends.sh - host: ${{ secrets.HISTAC_HOST }} - username: ${{ secrets.HISTAC_USERNAME }} - privateKey: ${{ secrets.HISTAC_KEY}} - port: ${{ secrets.HISTAC_PORT }} - - ohri_dev: - runs-on: ubuntu-latest - - needs: pre_release - - if: ${{ github.ref == 'refs/heads/dev' }} - - steps: - - name: Download Artifacts - uses: actions/download-artifact@v3 - - name: Compute Timestamp - run: echo "TIMESTAMP=$(date +'%Y-%m-%d')" >> $GITHUB_ENV - - uses: garygrossgarten/github-action-ssh@release - name: Run the Update MicroFronEnd Script - with: - command: cd /usr/share/tomcat/microfrontends/dev && /bin/bash update_microfrontends.sh - host: ${{ secrets.HISTAC_HOST }} - username: ${{ secrets.HISTAC_USERNAME }} - privateKey: ${{ secrets.HISTAC_KEY}} - - port: ${{ secrets.HISTAC_PORT }} - docker_devserver_frontend: runs-on: ubuntu-latest needs: docker_setup From d2ccba21cfe664b240ca93b88deaee6401d5fcc5 Mon Sep 17 00:00:00 2001 From: LarsLemos Date: Tue, 12 Sep 2023 08:22:08 +0200 Subject: [PATCH 3/4] Fix Critical Codebase vulnerabilities, for minimist and parse-url --- yarn.lock | 83 ++++++++++--------------------------------------------- 1 file changed, 15 insertions(+), 68 deletions(-) diff --git a/yarn.lock b/yarn.lock index 09e241871..8fae72c34 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9593,13 +9593,6 @@ __metadata: languageName: node linkType: hard -"decode-uri-component@npm:^0.2.0": - version: 0.2.0 - resolution: "decode-uri-component@npm:0.2.0" - checksum: f3749344ab9305ffcfe4bfe300e2dbb61fc6359e2b736812100a3b1b6db0a5668cba31a05e4b45d4d63dbf1a18dfa354cd3ca5bb3ededddabb8cd293f4404f94 - languageName: node - linkType: hard - "dedent@npm:^0.7.0": version: 0.7.0 resolution: "dedent@npm:0.7.0" @@ -11005,13 +10998,6 @@ __metadata: languageName: node linkType: hard -"filter-obj@npm:^1.1.0": - version: 1.1.0 - resolution: "filter-obj@npm:1.1.0" - checksum: cf2104a7c45ff48e7f505b78a3991c8f7f30f28bd8106ef582721f321f1c6277f7751aacd5d83026cb079d9d5091082f588d14a72e7c5d720ece79118fa61e10 - languageName: node - linkType: hard - "finalhandler@npm:1.2.0": version: 1.2.0 resolution: "finalhandler@npm:1.2.0" @@ -11544,7 +11530,7 @@ __metadata: resolution: "git-up@npm:4.0.5" dependencies: is-ssh: ^1.3.0 - parse-url: ^6.0.0 + parse-url: ^8.1.0 checksum: dd8f39a115ec0523b7da369cd4c6dc94a9b11fcc652e6fc9d011a93c287e27cc34e1d1c89cff8864f9ab11a1b2bea49786951d8eb3f1e5babd351afcc63f6135 languageName: node linkType: hard @@ -15604,7 +15590,7 @@ __metadata: languageName: node linkType: hard -"normalize-url@npm:^6.0.1, normalize-url@npm:^6.1.0": +"normalize-url@npm:^6.0.1": version: 6.1.0 resolution: "normalize-url@npm:6.1.0" checksum: 4a4944631173e7d521d6b80e4c85ccaeceb2870f315584fa30121f505a6dfd86439c5e3fdd8cd9e0e291290c41d0c3599f0cb12ab356722ed242584c30348e50 @@ -16426,27 +16412,21 @@ __metadata: languageName: node linkType: hard -"parse-path@npm:^4.0.0": - version: 4.0.4 - resolution: "parse-path@npm:4.0.4" +"parse-path@npm:^7.0.0": + version: 7.0.0 + resolution: "parse-path@npm:7.0.0" dependencies: - is-ssh: ^1.3.0 - protocols: ^1.4.0 - qs: ^6.9.4 - query-string: ^6.13.8 - checksum: 909e628c35baebeb3bdcaa376e2c5a21632a9094079ac55e04b3311db28219b15e517e10987dd49a13a904f2605b747b6368b0092130e0f2ff9bc5ffc40ceb63 + protocols: ^2.0.0 + checksum: 244b46523a58181d251dda9b888efde35d8afb957436598d948852f416d8c76ddb4f2010f9fc94218b4be3e5c0f716aa0d2026194a781e3b8981924142009302 languageName: node linkType: hard -"parse-url@npm:^6.0.0": - version: 6.0.5 - resolution: "parse-url@npm:6.0.5" +"parse-url@npm:^8.1.0": + version: 8.1.0 + resolution: "parse-url@npm:8.1.0" dependencies: - is-ssh: ^1.3.0 - normalize-url: ^6.1.0 - parse-path: ^4.0.0 - protocols: ^1.4.0 - checksum: b583800f63a8a293c5d53ee6b28b99293c742791fba4f14c1b829547a78bad93500fe0d448f8d8e2087a3c4d39deab236ed3837830ea522272e8c5852f21d223 + parse-path: ^7.0.0 + checksum: b93e21ab4c93c7d7317df23507b41be7697694d4c94f49ed5c8d6288b01cba328fcef5ba388e147948eac20453dee0df9a67ab2012415189fff85973bdffe8d9 languageName: node linkType: hard @@ -17349,14 +17329,7 @@ __metadata: languageName: node linkType: hard -"protocols@npm:^1.4.0": - version: 1.4.8 - resolution: "protocols@npm:1.4.8" - checksum: 2d555c013df0b05402970f67f7207c9955a92b1d13ffa503c814b5fe2f6dde7ac6a03320e0975c1f5832b0113327865e0b3b28bfcad023c25ddb54b53fab8684 - languageName: node - linkType: hard - -"protocols@npm:^2.0.1": +"protocols@npm:^2.0.0, protocols@npm:^2.0.1": version: 2.0.1 resolution: "protocols@npm:2.0.1" checksum: 4a9bef6aa0449a0245ded319ac3cbfd032c3e76ebb562777037a3a832c99253d0e8bc2847f7be350236df620a11f7d4fe683ea7f59a2cc14c69f746b6259eda4 @@ -17425,7 +17398,7 @@ __metadata: languageName: node linkType: hard -"qs@npm:6.11.0, qs@npm:^6.9.4": +"qs@npm:6.11.0": version: 6.11.0 resolution: "qs@npm:6.11.0" dependencies: @@ -17441,18 +17414,6 @@ __metadata: languageName: node linkType: hard -"query-string@npm:^6.13.8": - version: 6.14.1 - resolution: "query-string@npm:6.14.1" - dependencies: - decode-uri-component: ^0.2.0 - filter-obj: ^1.1.0 - split-on-first: ^1.0.0 - strict-uri-encode: ^2.0.0 - checksum: f2c7347578fa0f3fd4eaace506470cb4e9dc52d409a7ddbd613f614b9a594d750877e193b5d5e843c7477b3b295b857ec328903c943957adc41a3efb6c929449 - languageName: node - linkType: hard - "querystringify@npm:^2.1.1": version: 2.2.0 resolution: "querystringify@npm:2.2.0" @@ -19097,13 +19058,6 @@ __metadata: languageName: node linkType: hard -"split-on-first@npm:^1.0.0": - version: 1.1.0 - resolution: "split-on-first@npm:1.1.0" - checksum: 16ff85b54ddcf17f9147210a4022529b343edbcbea4ce977c8f30e38408b8d6e0f25f92cd35b86a524d4797f455e29ab89eb8db787f3c10708e0b47ebf528d30 - languageName: node - linkType: hard - "split2@npm:^3.0.0": version: 3.2.2 resolution: "split2@npm:3.2.2" @@ -19221,13 +19175,6 @@ __metadata: languageName: node linkType: hard -"strict-uri-encode@npm:^2.0.0": - version: 2.0.0 - resolution: "strict-uri-encode@npm:2.0.0" - checksum: eaac4cf978b6fbd480f1092cab8b233c9b949bcabfc9b598dd79a758f7243c28765ef7639c876fa72940dac687181b35486ea01ff7df3e65ce3848c64822c581 - languageName: node - linkType: hard - "string-length@npm:^4.0.1": version: 4.0.2 resolution: "string-length@npm:4.0.2" @@ -19405,7 +19352,7 @@ __metadata: resolution: "strong-log-transformer@npm:2.1.0" dependencies: duplexer: ^0.1.1 - minimist: ^1.2.0 + minimist: ^1.2.5 through: ^2.3.4 bin: sl-log-transformer: bin/sl-log-transformer.js From dd1ce487c68807f7bd6bb3e6e1b345cedfafaba9 Mon Sep 17 00:00:00 2001 From: LarsLemos Date: Tue, 12 Sep 2023 08:34:39 +0200 Subject: [PATCH 4/4] Fix vulnerability Cross-realm object access in Webpack 5 High --- package.json | 2 +- yarn.lock | 39 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c65bec464..81a22eb1b 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "systemjs-webpack-interop": "^2.3.7", "turbo": "^1.5.5", "typescript": "^4.6.3", - "webpack": "^5.74.0", + "webpack": "^5.88.2", "webpack-bundle-analyzer": "^4.4.0", "webpack-cli": "^4.9.2", "webpack-dev-server": "^4.8.1" diff --git a/yarn.lock b/yarn.lock index 8fae72c34..f8fcc9aed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3799,7 +3799,7 @@ __metadata: systemjs-webpack-interop: ^2.3.7 turbo: ^1.5.5 typescript: ^4.6.3 - webpack: ^5.74.0 + webpack: ^5.88.2 webpack-bundle-analyzer: ^4.4.0 webpack-cli: ^4.9.2 webpack-dev-server: ^4.8.1 @@ -21159,6 +21159,43 @@ __metadata: languageName: node linkType: hard +"webpack@npm:^5.88.2": + version: 5.88.2 + resolution: "webpack@npm:5.88.2" + dependencies: + "@types/eslint-scope": ^3.7.3 + "@types/estree": ^1.0.0 + "@webassemblyjs/ast": ^1.11.5 + "@webassemblyjs/wasm-edit": ^1.11.5 + "@webassemblyjs/wasm-parser": ^1.11.5 + acorn: ^8.7.1 + acorn-import-assertions: ^1.9.0 + browserslist: ^4.14.5 + chrome-trace-event: ^1.0.2 + enhanced-resolve: ^5.15.0 + es-module-lexer: ^1.2.1 + eslint-scope: 5.1.1 + events: ^3.2.0 + glob-to-regexp: ^0.4.1 + graceful-fs: ^4.2.9 + json-parse-even-better-errors: ^2.3.1 + loader-runner: ^4.2.0 + mime-types: ^2.1.27 + neo-async: ^2.6.2 + schema-utils: ^3.2.0 + tapable: ^2.1.1 + terser-webpack-plugin: ^5.3.7 + watchpack: ^2.4.0 + webpack-sources: ^3.2.3 + peerDependenciesMeta: + webpack-cli: + optional: true + bin: + webpack: bin/webpack.js + checksum: 79476a782da31a21f6dd38fbbd06b68da93baf6a62f0d08ca99222367f3b8668f5a1f2086b7bb78e23172e31fa6df6fa7ab09b25e827866c4fc4dc2b30443ce2 + languageName: node + linkType: hard + "websocket-driver@npm:>=0.5.1, websocket-driver@npm:^0.7.4": version: 0.7.4 resolution: "websocket-driver@npm:0.7.4"