From a519b95060e3161a1121967c84a157390a0cd028 Mon Sep 17 00:00:00 2001 From: Braeden Singleton Date: Mon, 10 Nov 2025 15:46:40 -0500 Subject: [PATCH 1/3] initialize project manager file --- .../project-management/project-manager.rst | 65 +++++++++++++++++++ source/index.rst | 1 + 2 files changed, 66 insertions(+) create mode 100644 source/how-tos/project-management/project-manager.rst diff --git a/source/how-tos/project-management/project-manager.rst b/source/how-tos/project-management/project-manager.rst new file mode 100644 index 00000000..2774d215 --- /dev/null +++ b/source/how-tos/project-management/project-manager.rst @@ -0,0 +1,65 @@ +.. _project_manager: + +Project Manager +=============== + +Overview +-------- + + +Setup +----- + +For individual projects, there is no setup required. Anybody with the permissions +to submit jobs to your scheduler will also be able to use all of the launcher and +workflow tools of the Project Manager after updating to v4.1. In order for users +to collaborate together they will need a properly configured shared directory, +meeting :ref:`these minimum permissions ` + + +.. _project_manager_collaboration: + +Collaboration +------------- +Collaborative projects need properly configured directories to exist in, which may +vary on the types of collaboration you would like to enable. Like other actions in +Open OnDemand, it will operate as the logged in user and never exceed the UNIX +permissions of the directories and files it operates on. This means there are several +different approaches you may want to take depending on your filesystem's account and +permission management approach. + +.. _project_manager_shared_project_root: + +Shared Project Root +------------------- + +The project manager provides the ``OOD_SHARED_PROJECT_ROOT`` environment variable to +help potential collaborators discover potential projects to import. While this is +not necessary for collaboration, it is a recommended step to make it easier to locate. +The ``OOD_SHARED_PROJECT_ROOT`` is a list of base locations for shared projects, allowing +you to add as many locations as you need for different types of users and projects. +The Project Manager will only allow users to import projects from locations that they +have access to, so there is no danger in adding paths that are not accessible to certain +users. + +Because many centers use group-based permission schemes, the Project Manager expects that +each directory in ``OOD_SHARED_PROJECT_ROOT`` has a set of subdirectories with finer permissions, +and will only look for projects in these subdirectories. + +For example, a center may have a shared project folder ``/fs/shared/projects``, and a series of subdirectories +``/fs/shared/projects/developers``, ``/fs/shared/projects/staff``, ``/fs/shared/projects/students``. + + +In this example, they would set ``OOD_SHARED_PROJECT_ROOT=/fs/shared/projects``, allowing developers +to create collaborative projects like ``/fs/shared/projects/developers/project1``, which are then +easily accessible to others in the ``developers`` group (likewise for ``staff`` and ``students``). + +While the Project Manager automates the permissions settings on project-specific folders, these can +never exceed the permissions of the ``SHARED_PROJECT_ROOT`` or any group-level subdirectory, so it +is important to ensure that your directory structure meets these minimum requirements. + +#. Any directory in ``OOD_SHARED_PROJECT_ROOT`` and above must have at minimum ``r-x`` permissions + for all potential collaborators. + +#. Any group directory directly below ``OOD_SHARED_PROJECT_ROOT`` should have ``rws`` permissions + for the group, as well as a ``T`` sticky bit to prevent unwanted deletions. \ No newline at end of file diff --git a/source/index.rst b/source/index.rst index a44351aa..25307162 100644 --- a/source/index.rst +++ b/source/index.rst @@ -65,6 +65,7 @@ These are institutions who were early adopters or provided HPC resources for dev how-tos/debug enable-desktops how-tos/app-development + how-tos/project-management/project-manager .. toctree:: :maxdepth: 2 From 9010a7abde2c02cf7b8b0bfaca718fb999a6fd57 Mon Sep 17 00:00:00 2001 From: Braeden Singleton Date: Mon, 10 Nov 2025 16:00:58 -0500 Subject: [PATCH 2/3] fix spelling --- source/how-tos/project-management/project-manager.rst | 2 +- source/spelling_wordlist.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/source/how-tos/project-management/project-manager.rst b/source/how-tos/project-management/project-manager.rst index 2774d215..2ae69f54 100644 --- a/source/how-tos/project-management/project-manager.rst +++ b/source/how-tos/project-management/project-manager.rst @@ -25,7 +25,7 @@ Collaborative projects need properly configured directories to exist in, which m vary on the types of collaboration you would like to enable. Like other actions in Open OnDemand, it will operate as the logged in user and never exceed the UNIX permissions of the directories and files it operates on. This means there are several -different approaches you may want to take depending on your filesystem's account and +different approaches you may want to take depending on your file system's account and permission management approach. .. _project_manager_shared_project_root: diff --git a/source/spelling_wordlist.txt b/source/spelling_wordlist.txt index 1a0ed1f3..85de68f5 100644 --- a/source/spelling_wordlist.txt +++ b/source/spelling_wordlist.txt @@ -161,3 +161,4 @@ js balancers OpenTofu Terraform +subdirectories \ No newline at end of file From aabc920672020737d3c0718a299826053d84f683 Mon Sep 17 00:00:00 2001 From: Braeden Singleton Date: Thu, 13 Nov 2025 13:12:13 -0500 Subject: [PATCH 3/3] Remove setgid and sticky bit Updated permissions requirement for group directories. --- source/how-tos/project-management/project-manager.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/how-tos/project-management/project-manager.rst b/source/how-tos/project-management/project-manager.rst index 2ae69f54..332ed963 100644 --- a/source/how-tos/project-management/project-manager.rst +++ b/source/how-tos/project-management/project-manager.rst @@ -61,5 +61,5 @@ is important to ensure that your directory structure meets these minimum require #. Any directory in ``OOD_SHARED_PROJECT_ROOT`` and above must have at minimum ``r-x`` permissions for all potential collaborators. -#. Any group directory directly below ``OOD_SHARED_PROJECT_ROOT`` should have ``rws`` permissions - for the group, as well as a ``T`` sticky bit to prevent unwanted deletions. \ No newline at end of file +#. Any group directory directly below ``OOD_SHARED_PROJECT_ROOT`` should have ``rwx`` permissions + for the group