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.
Use the Helm templates provided in the charts
directory to deploy the GOCDB in your Kubernetes cluster.
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.
- The GOCDB frontend can be reached at: /gocdb
- The public API can be reached at: /gocdbpi/public
- The private API can be reached at: /gocdbpi/private
For more details about GOCDB, visit the official documentation here.
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
- Env. variable
- Allow login via a simple form (located under
/gocdb/login/
; seehtdocs/web_portal/login/
) - Fix bug in
lib/Gocdb_Services/Role.php
not updating the Role record ID: After callingem->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
inhtdocs/web_portal/controllers/service/add_service.php
in thedraw()
function to iterate over all sites and then filter out all w/o proper access
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].