From 776a5eae1aa22a31af2c7193691882d66fbe54ec Mon Sep 17 00:00:00 2001 From: maany Date: Tue, 4 Feb 2025 16:18:29 +0100 Subject: [PATCH 1/3] gsoc25: add proposal for Rucio WebUI project --- _gsocprojects/2025/project_Rucio.md | 11 +++ _gsocproposals/2025/proposal_Rucio-webui.md | 84 +++++++++++++++++++++ gsoc/2025/mentors.md | 2 + 3 files changed, 97 insertions(+) create mode 100644 _gsocprojects/2025/project_Rucio.md create mode 100644 _gsocproposals/2025/proposal_Rucio-webui.md diff --git a/_gsocprojects/2025/project_Rucio.md b/_gsocprojects/2025/project_Rucio.md new file mode 100644 index 000000000..f755294da --- /dev/null +++ b/_gsocprojects/2025/project_Rucio.md @@ -0,0 +1,11 @@ +--- +project: Rucio +layout: default +logo: RUCIO-logo.png +description: | + [Rucio](https://rucio.cern.ch/) is an open-source software framework that provides functionality to scientific collaborations to organize, manage, monitor, and access their distributed data and dataflows across heterogeneous infrastructures. Rucio was originally developed to meet the requirements of the high-energy physics experiment ATLAS, and is continuously enhanced to support diverse scientific communities. +summary: | + [Rucio](https://rucio.cern.ch/) is an open-source data management framework that enables scientific collaborations to efficiently organize, monitor, and access distributed data across diverse infrastructures. +--- + +{% include gsoc_project.ext %} diff --git a/_gsocproposals/2025/proposal_Rucio-webui.md b/_gsocproposals/2025/proposal_Rucio-webui.md new file mode 100644 index 000000000..fff9785cc --- /dev/null +++ b/_gsocproposals/2025/proposal_Rucio-webui.md @@ -0,0 +1,84 @@ +--- +title: Rucio WebUI Revamp +layout: gsoc_proposal +project: Rucio +year: 2025 +difficulty: medium +duration: 350 +mentor_avail: June-November +organization: + - CERN +--- + +## Description + +[Rucio](https://rucio.cern.ch) is an open-source software framework that provides functionality to scientific collaborations to organize, manage, monitor, and access their distributed data and dataflows across heterogeneous infrastructures. Originally developed to meet the requirements of the high-energy physics experiment ATLAS, Rucio has been continuously enhanced to support diverse scientific communities. Since 2016, Rucio has orchestrated multiple exabytes of data access and data transfers globally. + +The [Rucio WebUI](https://github.com/rucio/webui) is a Next.js application utilized by various users within collaborating communities to access, monitor, and manage their distributed data. Key features of the Rucio WebUI include: + +- **SDK for Streaming:** Facilitates seamless data streaming from the Rucio server to page components, ensuring a responsive user interface. +- **Typed in TypeScript with Generics:** Strict typing ensures code integrity and enhances development efficiency. +- **Accessibility and Responsiveness:** Designed with accessibility and responsiveness in mind, ensuring usability across various devices. +- **Testing and Stability:** Extensive testing ensures robustness and reliability in all components. +- **Feature Toggles:** Dynamic feature toggles provide flexibility in enabling or disabling specific functionalities as needed. +- **Component Library:** Utilizes Storybook and TailwindCSS to enhance development speed and consistency. + +## Tasks + +1. **Upgrade to Next.js 15, React 19, TailwindCSS 4.x:** + - Migrate the existing codebase to Next.js 15 to leverage the latest features and performance improvements. + - Utilize Server Side Rendering and React Query in Client Side Components to enhance data-fetching capabilities. + - Migrate `tailwind.config.js` to new CSS based configuration for TailwindCSS 4.x. + +2. **Enhance User Experience for Site Administrators and Operators:** + - Currently the WebUI focusses on List/Get views with the exception of allowing users to Create Rules. Add features to Create/Edit resources for site administrators and operational experts. + - Investigate legacy views in the previous [Flask application]() and migrate them to the new WebUI. + - Redesign these views to be more user-friendly, incorporating feedback from site administrators and operators. + +3. **Migrate Authentication to NextAuth (Auth.js):** + - Transition existing x509 and user/password authentication mechanisms to NextAuth. + - Ensure compatibility with various authentication flows, including OAuth and OpenID Connect. + - Develop an RBAC system to ensure users have access only to functionalities relevant to their roles, enhancing security and usability. + +4. **Transition to a Monorepo Structure:** + - Migrate the Rucio WebUI to a monorepo structure to improve code organization and facilitate the sharing of common components across different projects. + +## Requirements + +**Mandatory:** +- Proficiency in React.js and Next.js +- Experience with TailwindCSS +- Strong knowledge of JavaScript (ECMAScript 6) and TypeScript +- Familiarity with Python 3 and Flask +- Proficiency with Linux, Git, and Docker + +**Good to Have:** +- Understanding of NX Monorepos +- Experience with AGGrid Data Tables +- Experience with GitHub Actions +- Knowledge of HTTP REST APIs +- Familiarity with OpenID Connect and x509 protocols + +## Expected Results + +By the end of GSoC 2025, we expect to have a revamped Rucio WebUI that: +- Is upgraded to Next.js 15 with integrated React Query. +- Utilizes both client and server-side components as per React 19's stable features. +- Supports TailwindCSS 4.0 for a modern design system. +- Offers enhanced user experiences tailored for site administrators and operators. +- Employs NextAuth for streamlined authentication processes. +- Implements a robust RBAC system. +- Adopts a monorepo structure for improved code organization and component sharing. + +## Mentors + +- **[Mayank Sharma](mailto:mayank.sharma@cern.ch)** (University of Michigan, Ann Arbor) +- [Martin Barisits](mailto:martin.barisits@cern.ch) (CERN) + +## Links + +1. [Rucio GitHub Repository](https://github.com/rucio/rucio) +2. [Rucio UI Presentation](https://docs.google.com/presentation/d/1mXw8Xo3bknO8Ahyd6RvKlNP0OwgXdKJxz6fWiuLYOdI/edit?usp=sharing) +3. [Rucio Documentation](https://rucio.readthedocs.io/en/latest/) +4. [Rucio System Overview Journal Article (Springer)](https://doi.org/10.1007/s41781-019-0026-3) +5. [Rucio Operational Experience Article (IEEE Computer Society)](http://sites.computer.org/debull/A20mar/p9.pdf) diff --git a/gsoc/2025/mentors.md b/gsoc/2025/mentors.md index 49913d147..0b54ac087 100644 --- a/gsoc/2025/mentors.md +++ b/gsoc/2025/mentors.md @@ -8,6 +8,8 @@ layout: plain ## Full Mentor List (Name, Email, Org) * Andy Buckley [andy.buckley@gla.ac.uk](mailto:andy.buckley@gla.ac.uk) UofGlasgow * Chris Gutschow [chris.g@cern.ch](mailto:chris.g@cern.ch) UCLondon +* Martin Barisits [martin.barisits@cern.ch](mailto:martin.barisits@cern.ch) CERN +* Mayank Sharma [mayank.sharma@cern.ch](mailto:mayank.sharma@cern.ch) UMich * Stephan Lachnit [stephan.lachnit@desy.de](mailto:stephan.lachnit@desy.de) DESY * Serguei Linev [S.Linev@gsi.de](mailto:S.Linev@gsi.de) GSI * Giacomo Parolini [giacomo.parolini@cern.ch](mailto:giacomo.parolini@cern.ch) CERN) From 47a311f8eb0c3a0e93139aeb1a14d4bbe0ec764a Mon Sep 17 00:00:00 2001 From: Mayank Sharma Date: Tue, 4 Feb 2025 17:54:21 +0100 Subject: [PATCH 2/3] Update _gsocproposals/2025/proposal_Rucio-webui.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix spelling error Co-authored-by: Maciej SzymaƄski --- _gsocproposals/2025/proposal_Rucio-webui.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_gsocproposals/2025/proposal_Rucio-webui.md b/_gsocproposals/2025/proposal_Rucio-webui.md index fff9785cc..085a87da8 100644 --- a/_gsocproposals/2025/proposal_Rucio-webui.md +++ b/_gsocproposals/2025/proposal_Rucio-webui.md @@ -31,7 +31,7 @@ The [Rucio WebUI](https://github.com/rucio/webui) is a Next.js application utili - Migrate `tailwind.config.js` to new CSS based configuration for TailwindCSS 4.x. 2. **Enhance User Experience for Site Administrators and Operators:** - - Currently the WebUI focusses on List/Get views with the exception of allowing users to Create Rules. Add features to Create/Edit resources for site administrators and operational experts. + - Currently the WebUI focuses on List/Get views with the exception of allowing users to Create Rules. Add features to Create/Edit resources for site administrators and operational experts. - Investigate legacy views in the previous [Flask application]() and migrate them to the new WebUI. - Redesign these views to be more user-friendly, incorporating feedback from site administrators and operators. From 99d31f6f4ea2ff78338c1bc2ddb4b2adca7452ef Mon Sep 17 00:00:00 2001 From: Mayank Sharma Date: Tue, 4 Feb 2025 17:56:39 +0100 Subject: [PATCH 3/3] Update proposal_Rucio-webui.md Add missing link to the old Flask Rucio UI --- _gsocproposals/2025/proposal_Rucio-webui.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_gsocproposals/2025/proposal_Rucio-webui.md b/_gsocproposals/2025/proposal_Rucio-webui.md index 085a87da8..0f2735215 100644 --- a/_gsocproposals/2025/proposal_Rucio-webui.md +++ b/_gsocproposals/2025/proposal_Rucio-webui.md @@ -32,7 +32,7 @@ The [Rucio WebUI](https://github.com/rucio/webui) is a Next.js application utili 2. **Enhance User Experience for Site Administrators and Operators:** - Currently the WebUI focuses on List/Get views with the exception of allowing users to Create Rules. Add features to Create/Edit resources for site administrators and operational experts. - - Investigate legacy views in the previous [Flask application]() and migrate them to the new WebUI. + - Investigate legacy views in the previous [Flask application](https://github.com/rucio/rucio/tree/master/lib/rucio/web/ui/flask) and migrate them to the new WebUI. - Redesign these views to be more user-friendly, incorporating feedback from site administrators and operators. 3. **Migrate Authentication to NextAuth (Auth.js):**