Polypheny Control

Polypheny Control is an automated build system for the Polypheny stack that allows to easily setup and monitor Polypheny. It is primarily used for automated benchmarks and testing of Polypheny. The provided API easily allows interacting with Polypheny Control from scripts. With the Control Connector we also provide a Java library, simplifying the interaction with Polypheny Control using Java applications.

Requirements

To build and start Polypheny using Polypheny Control, you need to have a Java JDK of version 11 or higher installed on your system. Thanks to JGit, Polypheny Control contains a pure Java implementation of Git. Therefore, it is not required to have Git installed on the system.

Setup

Download the latest polypheny-control.jar from the release section. To start the browser-based user interface, execute polypheny-control.jar by specifying the parameter control.

java -jar polypheny-control.jar control

The interface can now be accessed on port 8070. This port can be changed by specifying another port using the parameter -p:

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

Data Folder

Polypheny stores files in the local file system. By default, this is done in a special folder called .polypheny in the home directory of the executing user. This location can be customized by setting a system environment variable called POLYPHENY_HOME pointing to the desired location before Polypheny-DB is started.

(Optional) Setup Docker

See this on how to setup Docker to use the built-in Docker-based data store deployment.

Build & Start Polypheny

First trigger a build of Polypheny using the update-button in the browser-based user interface of Polypheny Control. The Polypheny-DB and Polypheny-UI branch can be configured by clicking on the gear-button.

After building, Polypheny can be started by clicking on the start-button.

To initiate a build of Polypheny, click on the update button in the Polypheny Control user interface. Once the build process is complete, you can run Polypheny by clicking on the start button.

For configuring the Polypheny-DB and Polypheny-UI branch, simply click on the gear button. Make sure to trigger a build after changing the branch.

Authentication

Polypheny Control features a robust authentication system that ensures access to its functionalities—whether via the CLI, API, or user interface—is restricted to authorized users only.

  • Enable Authentication: The authentication mechanism can be toggled on or off using pcrtl.auth.enable=(true|false). By default, it’s set to true, meaning authentication is active.

  • Local Authentication: If you want to mandate authentication for accessing the API and UI from localhost, use the pcrtl.auth.local=true configuration. By default, it’s false, allowing unauthenticated requests from the same host.

  • CLI Authentication: By setting pcrtl.auth.cli=true, you can enforce authentication for CLI operations, such as restarting Polypheny. However, this might be necessary only under specific scenarios or setups. By default, it is set to false, meaning no CLI authentication is required.

The ‘passwd’ File

The passwd file is where user credentials reside. Ensuring its security is paramount. First and foremost, set the correct access permissions, so only trusted users or roles can access it. Additionally, to defend against unsanctioned modifications, you can set the file as immutable using chattr on Linux/MacOS or attrib on Windows. Remember to reverse this setting if you intend to modify the file via Polypheny Control.

Admin User

The admin user plays a pivotal role in Polypheny Control, serving as the primary account for managing other users. To set up the admin user:

java -jar polypheny-control.jar adduser

When prompted, use “admin” as the username and choose a strong password. This admin password is essential for performing all user management operations.

Here’s a step-by-step guide on typical user management tasks:

# Setting up the admin user (Note: Passwords are hidden during entry)
> java -jar polypheny-control.jar adduser
Username: admin
Password: 
Confirm Password: 

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

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

# Deleting a user
> java -jar polypheny-control.jar remuser
Username: Loki
Enter 'admin' password (Try 1/3):
© Polypheny GmbH. All Rights Reserved.