Skip to content

Latest commit

 

History

History
34 lines (26 loc) · 2.53 KB

README.md

File metadata and controls

34 lines (26 loc) · 2.53 KB

GOCDB Docker Container

Docker files to provide a containerized version of GOCDB (https://wiki.egi.eu/wiki/GOCDB/Documentation_Index) for the CS3MESH4EOSC project.

The html directory contains all modified HTML files of the GOCDB that differ from the original version.

Various configuration files can be found in config; these are mainly used to configure the web server of the GOCDB and usually don't need to be modified.

Running the containers

Use the Helm templates provided in the charts directory to deploy the GOCDB in your Kubernetes cluster.

Usage

GOCDB offers a comfortable web frontend to manage the topology of a mesh; it also offers various REST API endpoints to query and modify the topology data.

For more details about GOCDB, visit the official documentation here.

Changes made

The following changes were made to the original GOCDB code:

  • Set up lib/Doctrine/bootstrap_doctrine.php, allowing configuration via environment variables
  • Add ScienceMesh username/password authentication based on site accounts (see lib/Authentication/)
    • Env. variable SITEACC_API used to specify site accounts service URL
  • Allow login via a simple form (located under /gocdb/login/; see htdocs/web_portal/login/)
  • Fix bug in lib/Gocdb_Services/Role.php not updating the Role record ID: After calling em->persist, em->flush has to be called to set generated values properly
    • Also apply the same fix to a bunch of other files, just in case...
  • The GOCDBAuthProvider used a non-existing class; fix by passing the required reference in the constructor
  • PI: Protect all methods via an API key (env. variable GOCDB_API_KEY)
  • Write PI: Extensions for automatically creating/updating/removing user accounts added under htdocs/PI/write/ext/; these work independently from the main PI
  • Change variable $allUserSites in htdocs/web_portal/controllers/service/add_service.php in the draw() function to iterate over all sites and then filter out all w/o proper access

Contact

The provided container is for testing purposes only. It is neither efficient nor secure. Not every detail of GOCDB was tested. If you encounter any problems, feel free to contact me at [email protected].