Giter VIP home page Giter VIP logo

notifier's Introduction

โš ๏ธ rucio/notifier is not maintained

This repository is not maintained and has been archived.

Notifier

notifier

GitHub package.json version

A system-tray utility to monitor all your transfers at multiple Rucio instances and get notified about them.

Description

Notifier is a standalone desktop application to get updates on your Rules at Rucio instances.

Notifier

  • Rule Monitoring: Monitor all your rule transfers like never before! This lightweight utility helps you watch all your rules and their status. The app sits in the systray of your system and gives you info about all your rules in a clcik.

  • Mutli-Account Setup: You can add multiple Rucio accounts whose rules you want to monitor in the app. After adding your existing account(s), just sign-in with any valid account and the app will handle the rest.

  • Transfer Monitoring: Get the status of your ongoing transfers at RSEs, and check if they are in OK, REPLICATING, or STUCK state easily in a user friendly way.

Installation

Download the binaries

Binaries are available from Releases. Download the files and install as usual.

Rucio Notifier is currently available for Linux and Windows. Binaries for MacOS shall be available soon.

Build from source

Building from source requires npm > 6.0 and node LTS or Current Release

Inside the root directory run the following command from the terminal

$ npm install
$ npm run electron-pack

The above script will build the app and place the binaries inside a dist folder in the root directory. Then execute or install through the binaries as usual.

Other Available Build Scripts:

Script Description
npm run clean-build-safe This will just clean the dist folder and build again.
npm run clean-build This will reset EVERYTHING (including node_modules and dist) and then build again.

Usage

Connecting your Rucio Account

After you start the app for the first time, you'll need to connect your Rucio account to the app. Simply click on Add your Rucio account and setup a new account with your USERPASS credentials, and the server details.

After setting up the account, you'll be able to log into the app using that account.

Adding Multiple Rucio Accounts

You can also set up multiple Rucio Accounts to see notifications from them on the app. Simply add more accounts from Add your Rucio account utility from the Login screen and log in to the app using any added account.

App Description

Activities: Check status of your REPLICATING and STUCK rules here. All the ongoing transfers are listed here. List updates every few minutes. You can also click the refresh button to force-refresh the status.

Notifications (Under Development): Here you can check all the past updates on your rules, when the transfers completed, and when they got stuck. This section is currently under development and will be working in the next stable release.

My Account: The section lists all your accounts, and displays information about your connected servers and the certificate location. Press Esc key to exit.

Documentation

  • User Documentation for Rucio Notifier - Includes client installation instructions and usage guide.

  • Developer Documentation (Coming Soon)

Getting Started with Development

Fork the repository or clone it directly to run on your system.

$ git clone https://github.com/<your-username>/rucio-notifier.git
$ cd rucio-notifier

Using the software in dev mode.

  • For starting the software in development mode.
$ npm install && npm run dev

This shall give you the minimal dev testing setup. If you wish to see how the app will behave post production, you will also need to start the Electron app.

  • To run the desktop app window for the software.

    Open another terminal window and run:

$ npm run electron

This will start Rucio Notifier inside of an Electron window. Any changes will be refleted live in the app.

Troubleshooting

In case of an code ELIFECYCLE npm error, perform the following steps

$ npm cache clean --force
$ rm -rf node_modules package-lock.json
$ npm install && npm start

Extra Notes

This project was started as part of the Google Summer of Code 2020 project for CERN-HSF's Rucio.
This software is tested on Ubuntu 18.04 LTS.

notifier's People

Contributors

viveknigam3003 avatar dependabot[bot] avatar mlassnig avatar gabrielefronze avatar bari12 avatar

Stargazers

Shubham Agarwal avatar Dheeraj Bhagchandani avatar  avatar

Watchers

 avatar  avatar James Cloos avatar  avatar Brian P Bockelman avatar Yuyi Guo avatar Ian Johnson avatar Diego Ciangottini avatar Alexander Richards avatar Muhammad Aditya Hilmy avatar  avatar Mayank Sharma avatar Fabio Luchetti avatar Vincent Garonne avatar Aris Fkiaras avatar  avatar  avatar  avatar Riccardo Di Maio avatar

notifier's Issues

Improve the API Polling system

Motivation

The current version of the app polls the /rules API from Rucio server(s) every 20 mins. While this works fine, it needs improvement on the existing system so that information can be retrieved more "intelligently" and make the experience fluid.

Modification

Add support for an Intelligent system to retrieve rule info rather than a fixed polling system.

Display Notifications for Transfers in Notification Tab

Motivation

The status of transfers is shown in real-time (almost) but there is no log of when the transfer started and when it completed. Hence a good place to add these logs is the notifications tab which at the moment renders static content.

Modification

Add functionality to display notifications in the app for status of the rules.

Support for Multiple Rucio Accounts

Motivation

Currently the app supports single account for logging into multiple servers. But there can be different credentials for different servers for the same user.

Modification

The multi server support was added with #11 which now needs to be improved to support multiple accounts for multiple servers.
The UI needs improvement as well to allow ease of access of all the accounts for the user.

Add support for Multiple Servers

Motivation

Currently the app supports only a single Rucio server but the FUSE module allows the user to mount multiple servers to their file system. The GUI app should align to the same practice for better integration of the both in the future.

Modification

Add support in the app server to support the authentication from multiple servers and handle the tokens for all those servers and provide a unified interface to display notifications from all the servers.

Adding Persistent Login

Motivation

The users get logged out on page/app refresh. This adds the inconvenience of logging in again after every start.

Modification

Add Persistent login routing.

Windows configurations

Motivation

Rucio Notifier is only just available for UNIX like operating systems, but its support can be extended to Windows systems also for regular clients.

Modification

  • Add start scripts for Windows.
  • Add Build Configuration for .exe and .msi for Windows targets.

Add Contribution Guidelines

Motivation

To promote contributions to this repository, it must have a CONTRIBUTION guide listing all the rules and steps to contribute.

Modification

Add a CONTRIBUTING.md file.

Allow parsing of RSE Expression

Motivation

Currently the RSE Expression is displayed as such with no pre-processing. This might cause the UI to break if RSE expression is too large. Hence it needs to be broken down accordingly and displayed in a better manner.

Modification

Enable parsing of RSE Expression and update the Rule Cards Component to support the same.

Buggy Redirection

Motivation

The app logs in the user and redirects fine, but the redirection is buggy and console logs some errors. The routing also does not render images, so that also needs a fix.

Modification

Fix the routing by refactoring the code and handling AUTH on frontend in a better way by storing states somehow.

Refresh Token after it expires

Motivation

Currently the token in the app expires after one hour which forces the user to sign-in again. This flow shall be improved and the token must be refreshed after every hour (or when it expires) to ensure persistent login works correctly.

Modification

Add a side-effect which handles the Token Refresh in production and development builds of the application, preventing a forced logout for a user.

Scroll not working for Notifications

Motivation

The notification list is being rendered fine but one cannot scroll to the bottom of the list as the div above it blocks the scroll. This needs to be fixed for better functionality of the app.

Modification

Fix the scroll action for notifications and activity messages.

Migrate Fonts

Motivation

Update the fonts to open-source font alternative like Inter

Modification

Update the fonts shipped with the release version of notifier.

Request to add confirmation message on login

Motivation

Currently when the user is logged in, there is no success message to indicate the change. Also if the user fails to login, the app just displays no message. This keeps the user out of the loop of the authentication.

Modification

Add a snackbar component to display success and failure messages on Login.

Allow native desktop notifications

Motivation

After #17 is solved. The users will only be able to see the notifications when they open the app and not when the notification is pushed to the app.

Modification

Add native desktop notification support using ElectronJS IPC for a native app user experience.

More details for Rules Required

Motivation

There are a few more details which are often required by the users for the rules. Currently the rules just display basic info, there should be more info on them for better usability.

Modification

Make the Rule Cards more interactive by adding functionality to them to show more details.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.