Skip to content

VishalDalwadi/Polypheny-Control

 
 

Repository files navigation

Polypheny Control

Polypheny Control allows to easily setup and monitor Polypheny-DB. It takes care of pulling the required repositories and executing the builds.

Originally, Polypheny Control has been designed as a tool for automating the evaluation and benchmarking of Polypheny-DB. Its integrated REST interface allows to easily integrate it into complex benchmarking scenarios.

Due to its easy to use user-interface, Polypheny Control is the recommended way for setting up Polypheny-DB.

Getting Started

This section describes how to set up Polypheny Control to build and run Polypheny-DB.

Requirements

To build and start Polypheny-DB using Polypheny Control you need to have Java JDK in Version 8 or higher installed on your system. Thanks to JGit, Polypheny Control contains a pure Java implementation of Git. Therefore, it is no longer required to have Git installed on the system.

Setup

Download the latest polypheny-control.jar from the release section.

On systems with a desktop environment, Polypheny Control can be started by double-clicking the JAR file. Polypheny Control then adds itself to the system tray.

Alternatively, you can also execute the JAR file with the argument tray:

java -jar polypheny-control.jar tray

Headless

Polypheny Control can be started in healess mode by specifying the parameter control:

java -jar polypheny-control.jar control

The browser-based user interface can now be accessed on port 8070. This port can be changed using the parameter -p:

java -jar polypheny-control.jar control -p 8070

We strongly recommend not to use any port between 8080 and 8089 as these are the default ports of services offered by Polypheny-DB.

First Steps

After starting Polypheny Control, open the dashboard in your browser of choice by navigating to localhost:8070. If Polypheny Control is running in tray mode, the dashboard can also be opened by clicking on the icon in the system tray and selecting dashboard.

In order to start Polypheny-DB, we first need to trigger a build. This can be done by clicking on the 🔄 button. When the build has completed, run Polypheny-DB by clicking on ▶️.

You can now open the Polypheny-UI by opening localhost:8080 in your browser.

Authentication

Polypheny Control now allows you to use authentication to allow only verified users to use it. Authentication is available both in the command line and in the browser. CLI authentication can be enabled/disabled using the pcrtl.auth.cli config option. It is disabled by default. Authentication for localhost can be enabled/disabled using the pcrtl.auth.local config option. It is also disabled by default. Authentication itself for be fully enabled/disabled using the pcrtl.auth.enable config option. It is enabled by default.

The passwd file

Polypheny Control stores user information in a file name passwd. This file is NOT protected. You can protect the file against modification by setting the immutable flag using chattr on Linux / MacOS and attrib on Windows. But, remember to reset the flag when modifying the file using polypheny control.

Admin User

Polypheny Control requires a admin user to create and manage other users. So, before you can create any other user you will need to create a admin user using the following command:

java -jar polypheny-control.jar adduser

This will prompt you to enter a name and password. Enter "admin" as the name and a strong password for the user. All of the user management actions need to be authorized using the admin password.

An example run of the user management features:

# Creating the admin user (The password is mandatory but won't be visible when you type it out)
> java -jar polypheny-control.jar adduser
Name: admin
Password: 
Confirm Password: 

# Creating a user
> java -jar polypheny-control.jar adduser
Name: Loki
Password: 
Confirm Password: 
Enter 'admin' password (Try 1/3):

# Modifying a user's password
> java -jar polypheny-control.jar moduser
Name: Loki
Password: 
Confirm Password: 
Enter 'admin' password (Try 1/3):

# Remove a user
> java -jar polypheny-control.jar remuser
Name: Loki
Enter 'admin' password (Try 1/3):

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

We highly welcome your contributions to Polypheny Control. If you would like to contribute, please fork the repository and submit your changes as a pull request. Please consult our Admin Repository and our Website for guidelines and additional information.

Please note that we have a code of conduct. Please follow it in all your interactions with the project.

Credits

Polypheny Control builds upon the great work of several other open source projects:

Frontend

All these libraries are imported using WebJars.

Backend

  • Airline: Annotation-driven Java library for building command line interfaces.
  • Apache Commons: A bunch of useful Java utility classes.
  • GSON: Convert Java Objects into their JSON representation and vice versa.
  • Guava: Set of special collection types.
  • Javalin: A simple and lightweight java web framework.
  • Java-WebSocket: WebSocket server and client implementation for Java.
  • JGit: Pure Java implementation of the Git version control system.
  • JSON.simple: A simple Java toolkit for JSON.
  • Log4j: Fast and flexible logging framework for Java.
  • Project Lombok: A library providing compiler annotations for tedious tasks.
  • SLF4J: Provides a logging API by means of a facade pattern.
  • Typesafe Config: A configuration library using HOCON files.
  • Unirest: A lightweight HTTP client library.
  • WinP: Windows process management library.

These projects are used "as is" and are integrated as libraries.

License

The Apache 2.0 License

About

A tool for deploying and managing Polypheny-DB.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 83.4%
  • JavaScript 7.0%
  • HTML 6.3%
  • CSS 3.3%