{"id":18798030,"url":"https://github.com/polypheny/polypheny-control","last_synced_at":"2025-04-13T17:10:23.344Z","repository":{"id":36211887,"uuid":"209975603","full_name":"polypheny/Polypheny-Control","owner":"polypheny","description":"A tool for deploying and managing Polypheny-DB.","archived":false,"fork":false,"pushed_at":"2024-07-17T13:37:29.000Z","size":707,"stargazers_count":11,"open_issues_count":1,"forks_count":11,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-27T07:51:49.705Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/polypheny.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-21T11:44:15.000Z","updated_at":"2024-07-17T13:37:33.000Z","dependencies_parsed_at":"2023-02-16T08:15:25.278Z","dependency_job_id":"29eb359c-0bca-4c1c-90b0-56dbfac44a29","html_url":"https://github.com/polypheny/Polypheny-Control","commit_stats":null,"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polypheny%2FPolypheny-Control","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polypheny%2FPolypheny-Control/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polypheny%2FPolypheny-Control/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polypheny%2FPolypheny-Control/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/polypheny","download_url":"https://codeload.github.com/polypheny/Polypheny-Control/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248750107,"owners_count":21155686,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T22:10:37.168Z","updated_at":"2025-04-13T17:10:23.323Z","avatar_url":"https://github.com/polypheny.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Polypheny Control\nPolypheny Control allows to easily setup and monitor Polypheny-DB. It takes care of pulling the required repositories and executing the builds.\n\nPolypheny 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.\n\n\n## Getting Started\nThis section describes how to set up Polypheny Control to build and run Polypheny-DB.\n\n\n### Requirements\nTo build and start Polypheny-DB using Polypheny Control you need to have a Java JDK of version 21 or higher installed on your system.\nThanks to [JGit](https://eclipse.dev/jgit/), Polypheny Control contains a pure Java implementation of Git. Therefore, it is no longer required to have Git installed on the system.\n\n\n### Setup\nDownload the latest [polypheny-control.jar](https://github.com/polypheny/Polypheny-Control/releases/latest) from the release section. \n\nOn 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.\n\nAlternatively, you can also execute the JAR file with the argument `tray`:\n```\njava -jar polypheny-control.jar tray\n```\n\n#### Headless\n\nPolypheny Control can be started in headless mode by specifying the parameter `control`:\n\n```\njava -jar polypheny-control.jar control\n```\n\nThe browser-based user interface can now be accessed on port 8070. This port can be changed using the parameter `-p`:\n\n```\njava -jar polypheny-control.jar control -p 8070\n```\n\nWe strongly recommend not to use any port between 8080 and 8089 as these are the default ports of services offered by Polypheny-DB.\n\n\n### First Steps\n\nAfter 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`.\n\nIn order to start Polypheny-DB, we first need to trigger a build. This can be done by clicking on the :arrows_counterclockwise: button. When the build has completed, run Polypheny-DB by clicking on :arrow_forward:.\n\nYou can now open the Polypheny-UI by clicking on the corresponding button on the dashboard.\n\n### Authentication\n\nPolypheny 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.\n\n- **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.\n\n- **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.\n\n- **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.\n\n#### The 'passwd' File\n\nThe **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.\n\n#### Admin User\n\nThe **admin** user plays a pivotal role in Polypheny Control, serving as the primary account for managing other users. To set up the admin user:\n\n```bash\njava -jar polypheny-control.jar adduser\n```\n\nWhen prompted, use \"admin\" as the username and choose a strong password. This admin password is essential for performing all user management operations.\n\nHere's a step-by-step guide on typical user management tasks:\n\n```bash\n# Setting up the admin user (Note: Passwords are hidden during entry)\n\u003e java -jar polypheny-control.jar adduser\nUsername: admin\nPassword: \nConfirm Password: \n\n# Adding a new user\n\u003e java -jar polypheny-control.jar adduser\nUsername: Loki\nPassword: \nConfirm Password: \nEnter 'admin' password (Try 1/3):\n\n# Changing a user's password\n\u003e java -jar polypheny-control.jar moduser\nUsername: Loki\nPassword: \nConfirm Password: \nEnter 'admin' password (Try 1/3):\n\n# Deleting a user\n\u003e java -jar polypheny-control.jar remuser\nUsername: Loki\nEnter 'admin' password (Try 1/3):\n```\n\n\n## Roadmap\nSee the [open issues](https://github.com/polypheny/Polypheny-DB/labels/A-control) for a list of proposed features (and known issues).\n\n\n## Contributing\nWe 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](https://github.com/polypheny/Admin) and our [Website](https://polypheny.org) for guidelines and additional information.\n\nPlease note that we have a [code of conduct](https://github.com/polypheny/Admin/blob/master/CODE_OF_CONDUCT.md). Please follow it in all your interactions with the project. \n\n\n## Credits\n_Polypheny Control_ builds upon the great work of several other open source projects:\n\n\n#### Frontend\n* [ansi_up.js](https://github.com/drudru/ansi_up): Converting text with ANSI terminal codes into colorful HTML.\n* [Font Awesome](https://fontawesome.com/): A set of web-related icons.\n* [jQuery](https://jquery.com/): The library that makes Javascript usable.\n* [jquery.serializeJSON](https://github.com/marioizquierdo/jquery.serializeJSON): Serialize an HTML Form to a JavaScript Object.\n* [Tooltipster](https://calebjacob.github.io/tooltipster/): jQuery plugin for modern tooltips.\n\nAll these libraries are imported using [WebJars](https://www.webjars.org/).\n\n\n#### Backend\n* [Airline](https://rvesse.github.io/airline/): Annotation-driven Java library for building command line interfaces.\n* [Apache Commons](http://commons.apache.org/): A bunch of useful Java utility classes.\n* [GSON](https://github.com/google/gson): Convert Java Objects into their JSON representation and vice versa.\n* [Guava](https://github.com/google/guava): Set of special collection types.\n* [Javalin](https://javalin.io/): A simple and lightweight java web framework.\n* [Java-WebSocket](http://tootallnate.github.io/Java-WebSocket/): WebSocket server and client implementation for Java.\n* [JGit](https://www.eclipse.org/jgit/): Pure Java implementation of the Git version control system.\n* [JSON.simple](https://code.google.com/archive/p/json-simple/): A simple Java toolkit for JSON.\n* [Log4j](https://logging.apache.org/log4j/2.x/): Fast and flexible logging framework for Java.\n* [Project Lombok](https://projectlombok.org/): A library providing compiler annotations for tedious tasks.\n* [SLF4J](http://www.slf4j.org/): Provides a logging API by means of a facade pattern.\n* [Typesafe Config](https://lightbend.github.io/config/): A configuration library using HOCON files.\n* [Unirest](http://kong.github.io/unirest-java/): A lightweight HTTP client library.\n* [WinP](http://winp.kohsuke.org/): Windows process management library.\n\nThese projects are used \"as is\" and are integrated as libraries.\n\n\n## License\nThe Apache 2.0 License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolypheny%2Fpolypheny-control","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpolypheny%2Fpolypheny-control","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolypheny%2Fpolypheny-control/lists"}