20688: Add wb1 to wb2 redirects to arvbox
authorPeter Amstutz <peter.amstutz@curii.com>
Tue, 18 Jul 2023 18:57:39 +0000 (14:57 -0400)
committerPeter Amstutz <peter.amstutz@curii.com>
Fri, 4 Aug 2023 15:24:38 +0000 (11:24 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>

tools/arvbox/lib/arvbox/docker/common.sh
tools/arvbox/lib/arvbox/docker/service/nginx/run
tools/arvbox/lib/arvbox/docker/service/ready/run-service

index d900f0377207a7a0717ec49c84643e8a9367aff9..822def937d16e9d7882e600245859e00d2ff49ab 100644 (file)
@@ -35,9 +35,9 @@ server_cert_key=$ARVADOS_CONTAINER_PATH/server-cert-${localip}.key
 
 declare -A services
 services=(
-  [workbench]=443
+  [workbench]=3001
   [workbench2]=3000
-  [workbench2-ssl]=3001
+  [workbench2-ssl]=443
   [api]=8004
   [controller]=8003
   [controller-ssl]=8000
index 991927be70645fc06ee3544663272db2fe2b8c23..272a6040cee27f07735aa3d22b7b876dcc77ae35 100755 (executable)
@@ -111,6 +111,63 @@ http {
     server_name workbench2;
     ssl_certificate "${server_cert}";
     ssl_certificate_key "${server_cert_key}";
+
+    # REDIRECTS FROM WORKBENCH 1 TO WORKBENCH 2
+
+    # Paths that are not redirected because wb1 and wb2 have similar enough paths
+    # that a redirect is pointless and would create a redirect loop.
+    # rewrite ^/api_client_authorizations.* /api_client_authorizations redirect;
+    # rewrite ^/repositories.* /repositories redirect;
+    # rewrite ^/links.* /links redirect;
+    # rewrite ^/projects.* /projects redirect;
+    # rewrite ^/trash /trash redirect;
+
+    # Redirects that don't have a good mapping and
+    # just go to root.
+    rewrite ^/themes.* / redirect;
+    rewrite ^/keep_disks.* / redirect;
+    rewrite ^/user_agreements.* / redirect;
+    rewrite ^/nodes.* / redirect;
+    rewrite ^/humans.* / redirect;
+    rewrite ^/traits.* / redirect;
+    rewrite ^/sessions.* / redirect;
+    rewrite ^/logout.* / redirect;
+    rewrite ^/logged_out.* / redirect;
+    rewrite ^/current_token / redirect;
+    rewrite ^/logs.* / redirect;
+    rewrite ^/factory_jobs.* / redirect;
+    rewrite ^/uploaded_datasets.* / redirect;
+    rewrite ^/specimens.* / redirect;
+    rewrite ^/pipeline_templates.* / redirect;
+    rewrite ^/pipeline_instances.* / redirect;
+
+    # Redirects that go to a roughly equivalent page
+    rewrite ^/virtual_machines.* /virtual-machines-admin redirect;
+    rewrite ^/users/.*/virtual_machines /virtual-machines-user redirect;
+    rewrite ^/authorized_keys.* /ssh-keys-admin redirect;
+    rewrite ^/users/.*/ssh_keys /ssh-keys-user redirect;
+    rewrite ^/containers.* /all_processes redirect;
+    rewrite ^/container_requests /all_processes redirect;
+    rewrite ^/job.* /all_processes redirect;
+    rewrite ^/users/link_account /link_account redirect;
+    rewrite ^/search.* /search-results redirect;
+    rewrite ^/keep_services.* /keep-services redirect;
+    rewrite ^/trash_items.* /trash redirect;
+
+    # Redirects that include a uuid
+    rewrite ^/work_units/(.*) /processes/$1 redirect;
+    rewrite ^/container_requests/(.*) /processes/$1 redirect;
+    rewrite ^/users/(.*) /user/$1 redirect;
+    rewrite ^/groups/(.*) /group/$1 redirect;
+
+    # Special file download redirects
+    if ($arg_disposition = attachment) {
+      rewrite ^/collections/([^/]*)/(.*) /?redirectToDownload=/c=$1/$2? redirect;
+    }
+    if ($arg_disposition = inline) {
+      rewrite ^/collections/([^/]*)/(.*) /?redirectToPreview=/c=$1/$2? redirect;
+    }
+
     location  / {
       proxy_pass http://workbench2;
       proxy_set_header Host \$http_host;
index 1e9aae0c45eb6a4685324c6edcc99504f6bf3dff..b19edaf25ab379fd84488bf01646dabb79c854df 100755 (executable)
@@ -89,7 +89,7 @@ fi
 
 echo
 echo "Your Arvados-in-a-box is ready!"
-echo "Workbench is hosted at https://$localip"
+echo "Workbench is hosted at https://$localip:${services[workbench]}"
 echo "Workbench2 is hosted at https://$localip:${services[workbench2-ssl]}"
 echo "Documentation is hosted at http://$localip:${services[doc]}"