Giter Club home page Giter Club logo

darshanvis-ui's People

Contributors

aleyasen avatar brcolli avatar redsn0w422 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

darshanvis-ui's Issues

reduce whitespace on page

Overall, too much white space and scrolling.
Third component (at bottom RHS) needs to take up less room, like the first component at top. Labels in third component might need to be shorter to help make this happen.
Make LHS component narrower.

DB read-only access

All DB access by the app should be read-only. If an attacker successfully takes over a DarshanViz session, we don't want the attacker to be able to do more than read the DB. That means that the app's userID at the DB should only have read access to the DB. In other words, it's not enough for all of the app's SQL calls to be read-only. The app's userID at the DB has to be restricted to read-only-ness.

top app page

Add the top apps page to dashboard, it should be first option in the LHS menu.

Choose the DB (ie the platform dataset)

Currently have a configuration file to set the choice of DB. This is too cumbersome. Add a feature that allows the user to choose between multiple dbs on their settings page. A link to the Settings page can be added at the top left of the screen, which is not very crowded.
Default for a new user should be the test database backend, so that a new user sees something interesting immediately. Default for a returning user should be the last DB they looked at.
Say somewhere at the top of the screen which db the user is looking at. (OK to use a nickname chosen by the user, as real names might be kind of awful.)

Use cookie for storing filter values

Currently, refresh URL in browser --> lose all state. This is undesirable. Add a cookie that remembers the user's state across browser refreshes.

prepared statement SQLs

The SQL statements need to be constructed and submitted differently than they are now. Each kind of call (i.e., with certain clauses in it and kinds of conditions, such as a date range or a user name or app name and group by or order by or whatever) needs to be defined as a template with placeholders for the actual values of dates/username/app name/etc. There might be around 8-10 of these templates. DarshanViz needs to make the MySQL call "Prepare" on each of these templates. This is super important. Then for the actual call, you just make a SQL call with the previously prepared template and the placeholder values that you want to use. This is super important for security.

what is shown at startup of DarshanViz, by default

  • For this admin version: change it to show one of the top apps screens at startup
  • For ordinary users: change it to show the app they ran last. The user field should be filled in automatically with their name, so they don't get confused.

default labels for filters

If the default chart for sysadmins includes all users and all apps: it needs to say so in the boxes where the user can choose a user and an app. More generally, "All" should be an option to choose, and it should be displayed if it is the default.

fake login page

add a fake login page with stub where a supercomputing site could add a call to their own authentication service and return success or failure. For now it can just always return success and log people into a superuser identity/role, because we are in a friendly user mode now. In the longer run, users must authenticate to an identity on the supercomputer whose jobs we will see, unless they are a superuser. In general, we should not write any authentication code ourselves -- use existing libraries/services. Find one that sanitizes the username input, and possibly the password.

set hashid for cookie

The cookie mentioned below needs to have a token/nonce/whatever in it to make it unforgeable and unreplayable (you should be able to use pre-existing code to make this happen. Don't write this code yourself. You don't want to have to think about the kinds of subtle attacks that attackers love to dream up.)

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.