From 864d512efeef2da7e62d7180f617cec37e0a7994 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 10 Apr 2026 14:34:36 -0400 Subject: [PATCH 01/12] Add Apptainer tutorial for Torch HPC cluster This tutorial provides step-by-step instructions for using Apptainer on the Torch HPC cluster, including pulling a container image, running it, executing commands, and exploring the container environment. --- docs/hpc/07_containers/02_apptainer_tutorial | 65 ++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 docs/hpc/07_containers/02_apptainer_tutorial diff --git a/docs/hpc/07_containers/02_apptainer_tutorial b/docs/hpc/07_containers/02_apptainer_tutorial new file mode 100644 index 0000000000..ed10dc8b59 --- /dev/null +++ b/docs/hpc/07_containers/02_apptainer_tutorial @@ -0,0 +1,65 @@ +# Getting Started with Apptainer on Torch + +This tutorial walks you through running your first container on the Torch HPC cluster using Apptainer. By the end of this guide, you will be able to pull a container image, run it, and execute commands inside a containerized environment. + +## Step 1: Pull a Container Image + +Make sure you are on a compute node (via `srun --pty bash`) before proceeding, as running containers on login nodes is not recommended. + +Pull a container image from Docker Hub: + +```sh +apptainer pull docker://python:3.10 +``` + +This command downloads a Docker image and converts it into an Apptainer image (`.sif`) that can be run on the cluster. + +## Step 2: Run the Container + +You can run the container using: + +```sh +apptainer run python_3.10.sif +``` + +This executes the default command defined by the container image. + +## Step 3: Execute Commands Inside the Container + +To run specific commands inside the container, use: + +```sh +apptainer exec python_3.10.sif python -c "print('Hello from container')" +``` + +This runs a Python command inside the containerized environment. + +## Step 4: Run a Simple Scientific Example + +Containers are commonly used in research workflows. For example, you can run a simple NumPy computation: + +```sh +apptainer exec python_3.10.sif python -c "import numpy as np; print(np.arange(5))" +``` + +This demonstrates how containerized environments can be used to run scientific Python code without installing dependencies locally. + +## Step 5: Explore the Container Environment + +Start an interactive shell inside the container: + +```sh +apptainer shell python_3.10.sif +``` + +Once inside, you can run commands as if you were in a separate environment: + +```sh +python +``` + +To exit the container: + +```sh +exit +``` From 51aff3e5e914f1efd5ef7b8ea9ab7bd29d664a8b Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 10 Apr 2026 14:35:02 -0400 Subject: [PATCH 02/12] Rename 02_apptainer_tutorial to 02_apptainer_tutorial.md --- .../{02_apptainer_tutorial => 02_apptainer_tutorial.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/hpc/07_containers/{02_apptainer_tutorial => 02_apptainer_tutorial.md} (100%) diff --git a/docs/hpc/07_containers/02_apptainer_tutorial b/docs/hpc/07_containers/02_apptainer_tutorial.md similarity index 100% rename from docs/hpc/07_containers/02_apptainer_tutorial rename to docs/hpc/07_containers/02_apptainer_tutorial.md From f0c616d55d700dd81190933be58153f9d2462306 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 10 Apr 2026 14:38:05 -0400 Subject: [PATCH 03/12] Update tutorial to remove unnecessary command reference --- docs/hpc/07_containers/02_apptainer_tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hpc/07_containers/02_apptainer_tutorial.md b/docs/hpc/07_containers/02_apptainer_tutorial.md index ed10dc8b59..baddd2dd9d 100644 --- a/docs/hpc/07_containers/02_apptainer_tutorial.md +++ b/docs/hpc/07_containers/02_apptainer_tutorial.md @@ -4,7 +4,7 @@ This tutorial walks you through running your first container on the Torch HPC cl ## Step 1: Pull a Container Image -Make sure you are on a compute node (via `srun --pty bash`) before proceeding, as running containers on login nodes is not recommended. +Make sure you are on a compute node before proceeding, as running containers on login nodes is not recommended. Pull a container image from Docker Hub: From 175cc9c497b56fb3af678f679820a4f4648aa484 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Fri, 10 Apr 2026 15:20:46 -0400 Subject: [PATCH 04/12] Appraiser Tutorial Updated the Apptainer tutorial to clarify steps and improve explanations. Adjusted examples and added details for better understanding. --- .../07_containers/02_apptainer_tutorial.md | 83 ++++++++++++++++--- 1 file changed, 70 insertions(+), 13 deletions(-) diff --git a/docs/hpc/07_containers/02_apptainer_tutorial.md b/docs/hpc/07_containers/02_apptainer_tutorial.md index baddd2dd9d..cc578294b5 100644 --- a/docs/hpc/07_containers/02_apptainer_tutorial.md +++ b/docs/hpc/07_containers/02_apptainer_tutorial.md @@ -2,64 +2,121 @@ This tutorial walks you through running your first container on the Torch HPC cluster using Apptainer. By the end of this guide, you will be able to pull a container image, run it, and execute commands inside a containerized environment. +For background on what Apptainer is and why we use it on Torch, see [Custom Applications with Containers](../containers/). + ## Step 1: Pull a Container Image Make sure you are on a compute node before proceeding, as running containers on login nodes is not recommended. -Pull a container image from Docker Hub: +Pulling an image downloads it from Docker Hub and converts it into an Apptainer `.sif` file that can be run on the cluster. ```sh apptainer pull docker://python:3.10 ``` -This command downloads a Docker image and converts it into an Apptainer image (`.sif`) that can be run on the cluster. +This may take a few minutes. You should see progress output like: + +``` +INFO: Converting OCI blobs to SIF format +INFO: Creating SIF file... +[=====================================================================] 100 % 0s +``` + +Once complete, you will find a file called `python_3.10.sif` in your current directory: + +```sh +ls *.sif +``` + +``` +python_3.10.sif +``` ## Step 2: Run the Container -You can run the container using: +Every container image has a default command defined by its creator. You can run it with: ```sh apptainer run python_3.10.sif ``` -This executes the default command defined by the container image. +For the Python image, this drops you into a Python interactive shell: + +``` +Python 3.10.x (main, ...) [GCC ...] on linux +Type "help", "copyright", "credits" or "license" for more information. +>>> +``` + +Type `exit()` to leave the Python shell. ## Step 3: Execute Commands Inside the Container -To run specific commands inside the container, use: +Instead of entering the container interactively, you can run a one-off command using `exec`. This is useful for scripting and batch jobs. ```sh apptainer exec python_3.10.sif python -c "print('Hello from container')" ``` -This runs a Python command inside the containerized environment. +You should see: + +``` +Hello from container +``` + +The command ran inside the containerized environment, then returned control to your shell. ## Step 4: Run a Simple Scientific Example -Containers are commonly used in research workflows. For example, you can run a simple NumPy computation: +Containers are commonly used in research workflows to run code in a reproducible environment. For example, you can run a NumPy computation without installing NumPy locally: ```sh -apptainer exec python_3.10.sif python -c "import numpy as np; print(np.arange(5))" +apptainer exec python_3.10.sif python -c "print(list(range(5)))" +``` + +Expected output: + +``` +[0, 1, 2, 3, 4] ``` -This demonstrates how containerized environments can be used to run scientific Python code without installing dependencies locally. +This confirms that the container's Python environment is working correctly. ## Step 5: Explore the Container Environment -Start an interactive shell inside the container: +To explore the container interactively, open a shell inside it: ```sh apptainer shell python_3.10.sif ``` -Once inside, you can run commands as if you were in a separate environment: +Your prompt will change to indicate you are now inside the container: + +``` +Apptainer> +``` + +From here you can run commands as you normally would. For example: + +```sh +python --version +``` ```sh -python +which python ``` -To exit the container: +When you are done, exit the container shell: ```sh exit ``` + +Your prompt will return to the normal Torch shell. + +## Understanding `exec` vs `shell` + +**`exec`** runs a single command you specify inside the container, then exits immediately. You never "enter" the container — control returns to your shell as soon as the command finishes. This makes it ideal for scripts and batch jobs. + +**`shell`** gives you an interactive bash shell inside the container, so you can explore the environment, run multiple commands, and inspect files. Think of it as "stepping inside" the container. + From 4d1ab4ba83663153f747f27f11668def64feb82f Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Tue, 14 Apr 2026 19:46:00 -0400 Subject: [PATCH 05/12] Enhance Apptainer tutorial with overlay and fakeroot info Added information about writable overlays and using fakeroot in Apptainer tutorial. --- docs/hpc/07_containers/02_apptainer_tutorial.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/hpc/07_containers/02_apptainer_tutorial.md b/docs/hpc/07_containers/02_apptainer_tutorial.md index cc578294b5..0840bf9dcb 100644 --- a/docs/hpc/07_containers/02_apptainer_tutorial.md +++ b/docs/hpc/07_containers/02_apptainer_tutorial.md @@ -33,6 +33,9 @@ python_3.10.sif ``` ## Step 2: Run the Container +:::info +Apptainer images are immutable by default. You can mount an writable overlay file and edit files within the overlay. +::: Every container image has a default command defined by its creator. You can run it with: @@ -66,6 +69,14 @@ Hello from container The command ran inside the containerized environment, then returned control to your shell. +### Using `fakeroot` + +In some cases, you may need elevated permissions inside the container to install software or modify system files. Apptainer provides a `--fakeroot` option that allows you to run commands inside the container with root-like privileges, without requiring actual root access on the system. + +```sh +$ apptainer exec --fakeroot .sif +``` + ## Step 4: Run a Simple Scientific Example Containers are commonly used in research workflows to run code in a reproducible environment. For example, you can run a NumPy computation without installing NumPy locally: From dfad6b71bbefe14ba1855dda18705368ebb5c347 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Tue, 14 Apr 2026 19:50:16 -0400 Subject: [PATCH 06/12] Revise Apptainer introduction and usage sections Updated the introduction to Apptainer, including sections on accessibility, creating containers, and comparing Apptainer with Docker. --- docs/hpc/07_containers/01_intro.md | 92 +++++++----------------------- 1 file changed, 22 insertions(+), 70 deletions(-) diff --git a/docs/hpc/07_containers/01_intro.md b/docs/hpc/07_containers/01_intro.md index 116fe28fca..81aba07a54 100644 --- a/docs/hpc/07_containers/01_intro.md +++ b/docs/hpc/07_containers/01_intro.md @@ -10,94 +10,46 @@ There are multiple reasons to use Apptainer on the HPC clusters: - **Security**: Apptainer provides a layer of security as it does not require any root access on our clusters. This makes it safer against malware and bad scripts that might jeopardize the outer system. Thus we only support Apptainer on our clusters (there are not other options such as Kubernetes or Docker on our clusters right now). - **Containerization**: Apptainer will run all your images (packaged and prebuilt programs) inside of its containers, each container works like a small vm. They contain all the required environment and files of a single Linux kernel and you don't have to worry about any pre-installation issues. - **Inter-connectivity**: Containers are able to talk to each other, as well as the home system, so while each container has its own small space, they are still a part of a big interconnected structure. Thus enabling you to connect your programs. -- **Accessibility**: Probably the most important feature of all, Apptainer allows you to run your program in 2 to 3 simple steps, as shown below. +- **Accessibility**: Probably the most important feature of all, Apptainer allows you to run your program in 2 to 3 simple steps. -## How to Run an Apptainer Container -There are 3 steps to run an Apptainer container on our clusters: - -:::warning -Running containers on login nodes is not encouraged, as processes may be terminated due to resource limits; please use compute nodes instead. -::: - -### 1. Pull an Image from Docker Hub -```sh -$ apptainer pull docker://godlovedc/lolcow -# image name can be for example docker://godlovedc/lolcow -``` - -![apptainer1](./static/apptainer1.png) +## How to Create an Apptainer Container +So what if you want to create an image from your container and save it for a rainy day? -### 2. Build the Image (Optional) -```sh -$ apptainer build .sif -# the image name can be a local image or an image from a hub -``` +Apptainer documentation has [instructions for building containers](https://apptainer.org/docs/user/latest/build_a_container.html) for your convenience. Please read through them to create your own Apptainer container and package it into an image! -Building an image is optional for most use cases. In many cases, users can directly run containers pulled from Docker Hub without building a local image. +Similarly, you can build docker containers using the information from [Docker's documentation](https://docs.docker.com/get-started/docker-concepts/building-images/). You can then upload them onto docker hub and pull them using Apptainer. Apptainer supports all Docker images! -![apptainer2](./static/apptainer2.png) +## Apptainer vs Docker +Why are there so many mentions of Docker? The reason is that Apptainer is essentially compatible with Docker and you don't need to relearn Apptainer if you already have experience with Docker. Now let's get into some pros and cons between the two programs. +- Docker is more accepted commercially than Apptainer. You can download and run Docker on your own computer with any operating system and build containers with ease while Apptainer is used in a more academic setting. Apptainer primarily supports Linux environments and is designed for HPC use cases. +- However, Docker requires root or admin access for the operating system it deploys on, and our clusters do not offer that access to any software that requires this criteria. Thus Docker is not available on the clusters and Apptainer is. +- A silver lining in all of this is that Apptainer fully supports Docker images and you can do everything in Docker and push your image to Docker Hub and pull them on the clusters. Thus making sure that you don't need to relearn workflows and can just use it through the simplest of commands in this documentation. -You can now run your container using the built image. +## Getting Started +### Common Commands +Pull an image from Docker Hub: -### 3. Run Container ```sh -# this is one way of running a container -$ apptainer run .sif -# this is another way to run a container -$ ./.sif +apptainer pull docker:// ``` -:::info -Apptainer images are immutable by default. You can mount an writable overlay file and edit files within the overlay. -::: - -running this would yield a menu for output: - -![apptainer3](./static/apptainer3.png) - -#### Enter Container +Run a container: ```sh -apptainer shell .sif -# after this step, you will be going into the container and start your programming +apptainer run .sif ``` -![apptainer4](./static/apptainer4.png) - -:::tip - -Run commands outside the container - -You can run commands for the container using exec arguments without actually going into the container - +Execute a command inside a container: ```sh -$ apptainer exec .sif -# adding commands to the back will return the display result of these commands in the container without actually going into the container +apptainer exec .sif ``` -::: - -### Using `fakeroot` - -In some cases, you may need elevated permissions inside the container to install software or modify system files. Apptainer provides a `--fakeroot` option that allows you to run commands inside the container with root-like privileges, without requiring actual root access on the system. +Start an interactive shell: ```sh -$ apptainer exec --fakeroot .sif +apptainer shell .sif ``` -That's it! Now you're good to go and can just use these simple steps to run Apptainer images and run your programs. +For a step-by-step tutorial on running containers on Torch, see: +[Getting Started with Apptainer on Torch](../getting_started_with_apptainer_on_torch/) For full information and documentation please visit [Apptainer](https://apptainer.org/). - -## How to Create an Apptainer Container -So what if you want to create an image from your container and save it for a rainy day? - -Apptainer documentation has [instructions for building containers](https://apptainer.org/docs/user/latest/build_a_container.html) for your convenience. Please read through them to create your own Apptainer container and package it into an image! - -Similarly, you can build docker containers using the information from [Docker's documentation](https://docs.docker.com/get-started/docker-concepts/building-images/). You can then upload them onto docker hub and pull them using Apptainer. Apptainer supports all Docker images! - -## Apptainer vs Docker -Why are there so many mentions of Docker? The reason is that Apptainer is essentially compatible with Docker and you don't need to relearn Apptainer if you already have experience with Docker. Now let's get into some pros and cons between the two programs. -- Docker is more accepted commercially than Apptainer. You can download and run Docker on your own computer with any operating system and build containers with ease while Apptainer is used in a more academic setting. Apptainer primarily supports Linux environments and is designed for HPC use cases. -- However, Docker requires root or admin access for the operating system it deploys on, and our clusters do not offer that access to any software that requires this criteria. Thus Docker is not available on the clusters and Apptainer is. -- A silver lining in all of this is that Apptainer fully supports Docker images and you can do everything in Docker and push your image to Docker Hub and pull them on the clusters. Thus making sure that you don't need to relearn workflows and can just use it through the simplest of commands in this documentation. - Good luck with Apptainer, and have fun! From 22c4564f8cec63665366539c56d242692d3a3d74 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Tue, 14 Apr 2026 19:54:59 -0400 Subject: [PATCH 07/12] Update link to Apptainer tutorial in intro.md --- docs/hpc/07_containers/01_intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hpc/07_containers/01_intro.md b/docs/hpc/07_containers/01_intro.md index 81aba07a54..740aaec27c 100644 --- a/docs/hpc/07_containers/01_intro.md +++ b/docs/hpc/07_containers/01_intro.md @@ -49,7 +49,7 @@ apptainer shell .sif ``` For a step-by-step tutorial on running containers on Torch, see: -[Getting Started with Apptainer on Torch](../getting_started_with_apptainer_on_torch/) +[Getting Started with Apptainer on Torch](./02_apptainer_tutorial) For full information and documentation please visit [Apptainer](https://apptainer.org/). Good luck with Apptainer, and have fun! From f9326bb3395087bc3e656d7f07ebdd084b100ca5 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Tue, 14 Apr 2026 19:59:20 -0400 Subject: [PATCH 08/12] Fix link to Apptainer tutorial in intro.md --- docs/hpc/07_containers/01_intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hpc/07_containers/01_intro.md b/docs/hpc/07_containers/01_intro.md index 740aaec27c..650856451a 100644 --- a/docs/hpc/07_containers/01_intro.md +++ b/docs/hpc/07_containers/01_intro.md @@ -49,7 +49,7 @@ apptainer shell .sif ``` For a step-by-step tutorial on running containers on Torch, see: -[Getting Started with Apptainer on Torch](./02_apptainer_tutorial) +[Getting Started with Apptainer on Torch](../02_apptainer_tutorial/) For full information and documentation please visit [Apptainer](https://apptainer.org/). Good luck with Apptainer, and have fun! From 723d76a1c8532da03c42b0390a79a7a04ec551ad Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Tue, 14 Apr 2026 20:05:17 -0400 Subject: [PATCH 09/12] Remove tutorial link from container introduction Removed tutorial link for running containers on Torch. --- docs/hpc/07_containers/01_intro.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/hpc/07_containers/01_intro.md b/docs/hpc/07_containers/01_intro.md index 650856451a..310f60612e 100644 --- a/docs/hpc/07_containers/01_intro.md +++ b/docs/hpc/07_containers/01_intro.md @@ -48,8 +48,5 @@ Start an interactive shell: apptainer shell .sif ``` -For a step-by-step tutorial on running containers on Torch, see: -[Getting Started with Apptainer on Torch](../02_apptainer_tutorial/) - For full information and documentation please visit [Apptainer](https://apptainer.org/). Good luck with Apptainer, and have fun! From bc21d93181a105e40259ea42cd06deb799e03c0b Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Thu, 30 Apr 2026 13:22:07 -0400 Subject: [PATCH 10/12] Remove synchronous access configuration Removed synchronous access configuration and related options. --- .../storage-finder-data-generator/config.ts | 38 ------------------- 1 file changed, 38 deletions(-) diff --git a/scripts/storage-finder-data-generator/config.ts b/scripts/storage-finder-data-generator/config.ts index c14c2c0733..cfb14760ac 100644 --- a/scripts/storage-finder-data-generator/config.ts +++ b/scripts/storage-finder-data-generator/config.ts @@ -51,13 +51,6 @@ export const FIELD_DEFINITIONS: ServiceFieldDefinition[] = [ weight: 8, formatter: (value) => toHtmlBlocks(value), }, - { - fieldKey: "field_synchronous_access", - column: "Synchronous Access", - label: "Synchronous Access", - weight: 9, - formatter: (value) => toHtmlBlocks(value), - }, { fieldKey: "field_backup", column: "Backup", @@ -244,37 +237,6 @@ export const FACET_CONFIGS: FacetConfig[] = [ ], fallback: "all", }, - { - id: "synchronous-access", - name: "Do you need synchronous or simultaneous access to your data?", - description: null, - column: "Synchronous Access", - controlType: "radio", - allowMultipleMatches: true, - choices: [ - { - id: "synchronous-access.yes", - name: "Yes", - weight: 0, - }, - { - id: "synchronous-access.no", - name: "No", - weight: 1, - }, - ], - matchers: [ - { - pattern: /\b(yes|users can edit|simultaneously)\b/i, - choices: ["synchronous-access.yes"], - }, - { - pattern: /\bnot available\b/i, - choices: ["synchronous-access.no"], - }, - ], - fallback: "all", - }, { id: "storage-duration", name: "What is your storage duration need?", From 0e1cca97834da4766c547fad4814dbe1fada2449 Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Thu, 30 Apr 2026 13:29:07 -0400 Subject: [PATCH 11/12] Fix formatting issues in MAINTENANCE.md --- scripts/storage-finder-data-generator/MAINTENANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/storage-finder-data-generator/MAINTENANCE.md b/scripts/storage-finder-data-generator/MAINTENANCE.md index e579add11c..bc0fc83f97 100644 --- a/scripts/storage-finder-data-generator/MAINTENANCE.md +++ b/scripts/storage-finder-data-generator/MAINTENANCE.md @@ -31,7 +31,7 @@ bun scripts/storage-finder-data-generator/generate.ts \ ## Service fields -Field definitions live in `scripts/storage-finder-data-generator/config.ts` (`FIELD_DEFINITIONS`). They map sheet columns to service detail rows (Links, Use Case, Limitations, Permission Settings, Eligibility, Synchronous Access, Alumni Access, Backup). Adjust labels or formatters there if the sheet schema changes. +Field definitions live in `scripts/storage-finder-data-generator/config.ts` (`FIELD_DEFINITIONS`). They map sheet columns to service detail rows (Links, Use Case, Limitations, Permission Settings, Eligibility, Alumni Access, Backup). Adjust labels or formatters there if the sheet schema changes. ## Naming and IDs From 1487827f038ca7c669dc67d6620d49ba7f0da77a Mon Sep 17 00:00:00 2001 From: Amanda-dong <159391549+Amanda-dong@users.noreply.github.com> Date: Thu, 30 Apr 2026 13:48:44 -0400 Subject: [PATCH 12/12] Add files via upload --- src/data/storage-finder/facet-tree.json | 43 +----- src/data/storage-finder/service-list.json | 166 +++++----------------- 2 files changed, 43 insertions(+), 166 deletions(-) diff --git a/src/data/storage-finder/facet-tree.json b/src/data/storage-finder/facet-tree.json index 78559dc7d2..104264a2b3 100644 --- a/src/data/storage-finder/facet-tree.json +++ b/src/data/storage-finder/facet-tree.json @@ -160,41 +160,12 @@ } ] }, - { - "id": "synchronous-access", - "name": "Do you need synchronous or simultaneous access to your data?", - "control_type": "radio", - "parent": "0", - "weight": "8", - "selected": false, - "description": null, - "choices": [ - { - "id": "synchronous-access.yes", - "name": "Yes", - "control_type": "radio", - "parent": "synchronous-access", - "weight": "0", - "selected": false, - "description": null - }, - { - "id": "synchronous-access.no", - "name": "No", - "control_type": "radio", - "parent": "synchronous-access", - "weight": "1", - "selected": false, - "description": null - } - ] - }, { "id": "storage-duration", "name": "What is your storage duration need?", "control_type": "radio", "parent": "0", - "weight": "10", + "weight": "8", "selected": false, "description": null, "choices": [ @@ -223,7 +194,7 @@ "name": "What is the primary purpose for your storage?", "control_type": "checkbox", "parent": "0", - "weight": "12", + "weight": "10", "selected": false, "description": null, "choices": [ @@ -288,7 +259,7 @@ "name": "What is your budget for storage?", "control_type": "radio", "parent": "0", - "weight": "14", + "weight": "12", "selected": false, "description": null, "choices": [ @@ -317,7 +288,7 @@ "name": "What storage capacity do you need?", "control_type": "radio", "parent": "0", - "weight": "16", + "weight": "14", "selected": false, "description": null, "choices": [ @@ -355,7 +326,7 @@ "name": "From where will the data be accessed?", "control_type": "checkbox", "parent": "0", - "weight": "18", + "weight": "16", "selected": false, "description": null, "choices": [ @@ -402,7 +373,7 @@ "name": "Do you have any special requirements or restrictions?", "control_type": "checkbox", "parent": "0", - "weight": "20", + "weight": "18", "selected": false, "description": null, "choices": [ @@ -458,7 +429,7 @@ "name": "What additional features do you need?", "control_type": "checkbox", "parent": "0", - "weight": "22", + "weight": "20", "selected": false, "description": null, "choices": [ diff --git a/src/data/storage-finder/service-list.json b/src/data/storage-finder/service-list.json index e340dc4ac7..40eddc6cfe 100644 --- a/src/data/storage-finder/service-list.json +++ b/src/data/storage-finder/service-list.json @@ -10,7 +10,6 @@ "affiliation.staff", "access-needs.netid-collaborators", "backup-availability.yes", - "synchronous-access.no", "storage-duration.long-term", "use-case-purpose.archive", "cost-model.paid", @@ -61,7 +60,7 @@ "weight": 6 }, "field_eligibility": { - "value": "

Staff and Faculty.

", + "value": "

Faculty; Staff

", "label": "Eligibility", "weight": 7 }, @@ -70,11 +69,6 @@ "label": "Access Locations", "weight": 8 }, - "field_synchronous_access": { - "value": "

Not Available

", - "label": "Synchronous Access", - "weight": 9 - }, "field_backup": { "value": "

Yes, available for additional cost.

", "label": "Backup", @@ -96,7 +90,6 @@ "affiliation.faculty", "access-needs.netid-collaborators", "backup-availability.yes", - "synchronous-access.yes", "storage-duration.long-term", "use-case-purpose.archive", "use-case-purpose.active-research", @@ -145,7 +138,7 @@ "weight": 6 }, "field_eligibility": { - "value": "

Faculty sponsored

", + "value": "

Faculty; Faculty sponsored

", "label": "Eligibility", "weight": 7 }, @@ -154,11 +147,6 @@ "label": "Access Locations", "weight": 8 }, - "field_synchronous_access": { - "value": "

Yes

", - "label": "Synchronous Access", - "weight": 9 - }, "field_backup": { "value": "

Yes, 30 day retention

", "label": "Backup", @@ -186,8 +174,6 @@ "access-needs.netid-collaborators", "access-needs.external-collaborators", "backup-availability.yes", - "synchronous-access.yes", - "synchronous-access.no", "storage-duration.long-term", "storage-duration.temporary", "use-case-purpose.collaboration", @@ -232,7 +218,7 @@ "weight": 6 }, "field_eligibility": { - "value": "

NYU Units, Faculty, Staff, Researchers

", + "value": "

Faculty; Staff; Students

", "label": "Eligibility", "weight": 7 }, @@ -241,11 +227,6 @@ "label": "Access Locations", "weight": 8 }, - "field_synchronous_access": { - "value": "

Unlimited access to the file share but files can only be editable by one person unless the application allows otherwise.

", - "label": "Synchronous Access", - "weight": 9 - }, "field_backup": { "value": "

Yes, backed up daily, retains last 30 days; monitored 24x7

", "label": "Backup", @@ -267,7 +248,6 @@ "affiliation.faculty", "access-needs.netid-collaborators", "backup-availability.yes", - "synchronous-access.yes", "storage-duration.long-term", "use-case-purpose.archive", "use-case-purpose.active-research", @@ -315,7 +295,7 @@ "weight": 6 }, "field_eligibility": { - "value": "

Faculty sponsored

", + "value": "

Faculty; Faculty sponsored

", "label": "Eligibility", "weight": 7 }, @@ -324,11 +304,6 @@ "label": "Access Locations", "weight": 8 }, - "field_synchronous_access": { - "value": "

Yes

", - "label": "Synchronous Access", - "weight": 9 - }, "field_backup": { "value": "

Yes, 30 day retention

", "label": "Backup", @@ -352,7 +327,6 @@ "access-needs.external-collaborators", "access-needs.netid-collaborators", "backup-availability.yes", - "synchronous-access.no", "storage-duration.long-term", "storage-duration.temporary", "use-case-purpose.active-research", @@ -393,7 +367,7 @@ "weight": 6 }, "field_eligibility": { - "value": "

Faculty, Researcher, and Graduate Student HPC user account holders.

", + "value": "

Faculty; and Graduate Student HPC user account holders

", "label": "Eligibility", "weight": 7 }, @@ -402,11 +376,6 @@ "label": "Access Locations", "weight": 8 }, - "field_synchronous_access": { - "value": "

Not Available.

", - "label": "Synchronous Access", - "weight": 9 - }, "field_backup": { "value": "

Yes, retains past 30 days.

", "label": "Backup", @@ -428,7 +397,6 @@ "affiliation.faculty", "access-needs.netid-collaborators", "backup-availability.no", - "synchronous-access.yes", "storage-duration.temporary", "use-case-purpose.archive", "use-case-purpose.active-research", @@ -476,7 +444,7 @@ "weight": 6 }, "field_eligibility": { - "value": "

Faculty sponsored

", + "value": "

Faculty; Faculty sponsored

", "label": "Eligibility", "weight": 7 }, @@ -485,11 +453,6 @@ "label": "Access Locations", "weight": 8 }, - "field_synchronous_access": { - "value": "

Yes

", - "label": "Synchronous Access", - "weight": 9 - }, "field_backup": { "value": "

No

", "label": "Backup", @@ -513,7 +476,6 @@ "affiliation.staff", "access-needs.netid-collaborators", "backup-availability.yes", - "synchronous-access.yes", "storage-duration.long-term", "storage-duration.temporary", "use-case-purpose.archive", @@ -565,7 +527,7 @@ "weight": 6 }, "field_eligibility": { - "value": "

Faculty, Staff, Researchers

", + "value": "

Faculty; Staff; Faculty sponsored; External collaborators

", "label": "Eligibility", "weight": 7 }, @@ -574,11 +536,6 @@ "label": "Access Locations", "weight": 8 }, - "field_synchronous_access": { - "value": "

Up to 20 users can edit and comment simultaneously

", - "label": "Synchronous Access", - "weight": 9 - }, "field_backup": { "value": "

Yes, Retains up to 100 previous versions of a single file

", "label": "Backup", @@ -601,7 +558,6 @@ "affiliation.staff", "access-needs.shared-link", "backup-availability.yes", - "synchronous-access.yes", "storage-duration.long-term", "storage-duration.temporary", "use-case-purpose.archive", @@ -652,7 +608,7 @@ "weight": 6 }, "field_eligibility": { - "value": "

Faculty, Staff, Students, Researchers

", + "value": "

Faculty; Staff; Students; External collaborators

", "label": "Eligibility", "weight": 7 }, @@ -661,11 +617,6 @@ "label": "Access Locations", "weight": 8 }, - "field_synchronous_access": { - "value": "

Up to 100 users can edit & comment simultaneously

", - "label": "Synchronous Access", - "weight": 9 - }, "field_backup": { "value": "

Yes, retains last 30 days or 100 revisions

", "label": "Backup", @@ -688,7 +639,6 @@ "affiliation.staff", "access-needs.shared-link", "backup-availability.yes", - "synchronous-access.yes", "storage-duration.long-term", "storage-duration.temporary", "use-case-purpose.archive", @@ -740,7 +690,7 @@ "weight": 6 }, "field_eligibility": { - "value": "

Faculty, Staff, Students, Researchers

", + "value": "

Faculty; Staff; Students

", "label": "Eligibility", "weight": 7 }, @@ -749,11 +699,6 @@ "label": "Access Locations", "weight": 8 }, - "field_synchronous_access": { - "value": "

Up to 100 users can edit & comment simultaneously

", - "label": "Synchronous Access", - "weight": 9 - }, "field_backup": { "value": "

Yes, retains last 30 days or 100 revisions

", "label": "Backup", @@ -775,7 +720,6 @@ "affiliation.staff", "access-needs.netid-collaborators", "backup-availability.yes", - "synchronous-access.no", "storage-duration.long-term", "storage-duration.temporary", "use-case-purpose.media", @@ -820,7 +764,7 @@ "weight": 6 }, "field_eligibility": { - "value": "

Students, Faculty, Staff

", + "value": "

Faculty; Staff; Students

", "label": "Eligibility", "weight": 7 }, @@ -829,11 +773,6 @@ "label": "Access Locations", "weight": 8 }, - "field_synchronous_access": { - "value": "

Not Available

", - "label": "Synchronous Access", - "weight": 9 - }, "field_backup": { "value": "

Yes

", "label": "Backup", @@ -852,12 +791,10 @@ "facet_matches": [ "risk-classification.public-low", "risk-classification.sensitive-moderate", - "risk-classification.confidential-high", "affiliation.faculty", "affiliation.staff", "access-needs.netid-collaborators", "backup-availability.yes", - "synchronous-access.yes", "storage-duration.long-term", "storage-duration.temporary", "use-case-purpose.active-research", @@ -882,7 +819,7 @@ "weight": 2 }, "field_storable_files": { - "value": "

High, Moderate & Low Risk

", + "value": "

Moderate & Low Risk

", "label": "Storable Files", "weight": 3 }, @@ -902,7 +839,7 @@ "weight": 6 }, "field_eligibility": { - "value": "

Current Faculty, Retired Faculty, Staff, Students & Researchers

", + "value": "

Faculty; Retired Faculty; Staff; Students; External collaborators

", "label": "Eligibility", "weight": 7 }, @@ -911,11 +848,6 @@ "label": "Access Locations", "weight": 8 }, - "field_synchronous_access": { - "value": "

Yes

", - "label": "Synchronous Access", - "weight": 9 - }, "field_backup": { "value": "

Yes, Yes, backed up daily by Qualtrics

", "label": "Backup", @@ -937,10 +869,8 @@ "risk-classification.confidential-high", "affiliation.faculty", "affiliation.staff", - "affiliation.student", "access-needs.netid-collaborators", "backup-availability.yes", - "synchronous-access.yes", "storage-duration.long-term", "storage-duration.temporary", "use-case-purpose.surveys", @@ -985,7 +915,7 @@ "weight": 6 }, "field_eligibility": { - "value": "

Faculty, Research staff, Student research affiliates & External research collaborators

", + "value": "

Faculty; Staff; Faculty sponsored; External collaborators

", "label": "Eligibility", "weight": 7 }, @@ -994,11 +924,6 @@ "label": "Access Locations", "weight": 8 }, - "field_synchronous_access": { - "value": "

Yes

", - "label": "Synchronous Access", - "weight": 9 - }, "field_backup": { "value": "

Yes, backed up daily.

", "label": "Backup", @@ -1024,7 +949,6 @@ "access-needs.netid-collaborators", "access-needs.external-collaborators", "backup-availability.yes", - "synchronous-access.yes", "storage-duration.long-term", "storage-duration.temporary", "use-case-purpose.active-research", @@ -1065,7 +989,7 @@ "weight": 6 }, "field_eligibility": { - "value": "

Faculty, and Researchers

", + "value": "

Faculty; Faculty sponsored

", "label": "Eligibility", "weight": 7 }, @@ -1074,11 +998,6 @@ "label": "Access Locations", "weight": 8 }, - "field_synchronous_access": { - "value": "

Yes

", - "label": "Synchronous Access", - "weight": 9 - }, "field_backup": { "value": "

Yes, available as configurable snapshotting

", "label": "Backup", @@ -1099,21 +1018,31 @@ "risk-classification.sensitive-moderate", "affiliation.faculty", "affiliation.staff", - "affiliation.student", + "access-needs.individual", + "access-needs.public", "access-needs.shared-link", + "access-needs.netid-collaborators", + "access-needs.external-collaborators", "backup-availability.yes", - "synchronous-access.no", "storage-duration.long-term", "storage-duration.temporary", + "use-case-purpose.archive", "use-case-purpose.active-research", "use-case-purpose.collaboration", + "use-case-purpose.surveys", + "use-case-purpose.media", + "use-case-purpose.repository", "cost-model.free", "cost-model.paid", "storage-capacity.small", "storage-capacity.medium", "storage-capacity.large", "access-location.vpn", + "special-requirements.none", + "special-requirements.active-directory", "special-requirements.faculty-sponsorship", + "special-requirements.data-stewardship", + "special-requirements.project-approval", "additional-features.access-controls" ], "summary": null, @@ -1129,22 +1058,22 @@ "weight": 3 }, "field_use_case": { - "value": "

Storage of NYU research data & collaboration with non-NYU researchers

", + "value": "

Mountable storage with a focus on fast access to actively used datasets.

", "label": "Use Case", "weight": 4 }, "field_limitations": { - "value": "

Requires faculty, staff; or student with full-time NYU faculty sponsorship

", + "value": "

VPN needed when off-campus.

", "label": "Limitations", "weight": 5 }, "field_permission_settings": { - "value": "

Options for fully private, read only, or editable through shared link

", + "value": "

Done via Grouper; can give collaborators read access, read/write access, or administrator priveleges for a share.

", "label": "Permission Settings", "weight": 6 }, "field_eligibility": { - "value": "

Faculty; or Staff/Student with full-time faculty sponsorship

", + "value": "

Faculty; Staff; Faculty sponsored

", "label": "Eligibility", "weight": 7 }, @@ -1153,11 +1082,6 @@ "label": "Access Locations", "weight": 8 }, - "field_synchronous_access": { - "value": "

Not Available

", - "label": "Synchronous Access", - "weight": 9 - }, "field_backup": { "value": "

Yes, Retains last 30 days

", "label": "Backup", @@ -1178,11 +1102,8 @@ "risk-classification.sensitive-moderate", "risk-classification.confidential-high", "affiliation.faculty", - "affiliation.staff", - "affiliation.student", "access-needs.netid-collaborators", "backup-availability.no", - "synchronous-access.no", "storage-duration.long-term", "storage-duration.temporary", "use-case-purpose.active-research", @@ -1230,7 +1151,7 @@ "weight": 6 }, "field_eligibility": { - "value": "

Faculty; or Staff/Student with full-time faculty sponsorship

", + "value": "

Faculty; Faculty sponsored

", "label": "Eligibility", "weight": 7 }, @@ -1239,11 +1160,6 @@ "label": "Access Locations", "weight": 8 }, - "field_synchronous_access": { - "value": "

Not Available

", - "label": "Synchronous Access", - "weight": 9 - }, "field_backup": { "value": "

No

", "label": "Backup", @@ -1266,7 +1182,6 @@ "affiliation.staff", "access-needs.public", "backup-availability.yes", - "synchronous-access.no", "storage-duration.long-term", "use-case-purpose.archive", "use-case-purpose.repository", @@ -1316,7 +1231,7 @@ "weight": 6 }, "field_eligibility": { - "value": "

Faculty, Staff, Students & Researchers

", + "value": "

Faculty; Staff; Students

", "label": "Eligibility", "weight": 7 }, @@ -1325,11 +1240,6 @@ "label": "Access Locations", "weight": 8 }, - "field_synchronous_access": { - "value": "

Not Available

", - "label": "Synchronous Access", - "weight": 9 - }, "field_backup": { "value": "

Yes, backed up as different versions

", "label": "Backup", @@ -1352,13 +1262,14 @@ "affiliation.staff", "access-needs.public", "backup-availability.yes", - "synchronous-access.no", "storage-duration.long-term", "use-case-purpose.archive", "use-case-purpose.repository", "cost-model.free", "cost-model.paid", "storage-capacity.small", + "storage-capacity.medium", + "storage-capacity.large", "access-location.vpn", "access-location.public-cloud", "access-location.off-campus", @@ -1389,7 +1300,7 @@ "weight": 4 }, "field_limitations": { - "value": "

Small sized projects

", + "value": "

Not Available

", "label": "Limitations", "weight": 5 }, @@ -1399,7 +1310,7 @@ "weight": 6 }, "field_eligibility": { - "value": "

Faculty, Staff, Students & Researchers

", + "value": "

Faculty; Staff; Students

", "label": "Eligibility", "weight": 7 }, @@ -1408,11 +1319,6 @@ "label": "Access Locations", "weight": 8 }, - "field_synchronous_access": { - "value": "

Not Available

", - "label": "Synchronous Access", - "weight": 9 - }, "field_backup": { "value": "

Yes

", "label": "Backup",