Skip to content
Snippets Groups Projects

SIDO

Système d'Information pour les Données Orphelines

SWH

Goals

  • Provide an information system for data that doesn't have one
  • Ensure the conformity of inserted data
  • Provide a role system for dataset management
  • Upload a dataset with metadata at various formats to Dataverse
  • Serve data on a webservice

Features

SIDO takes advantage of Maven's modular architecture, and consists of 6 modules:

  • sido-gwt contains the web application
  • sido-rs contains model classes for data export webservice
  • sido-verification contains the methods for validating inserted files
  • sido-cli contains a client that checks the conformity of parameter files
  • sido-createSchemaTables creates SQL tables for parameter files
  • sido-eml contains a utility for generating metadata files in EML format

Development

1. Database

To create the application database:

  • create a user for the application:
$ sudo su postgres
$ psql
postgres=# CREATE USER sido WITH PASSWORD 'sido';
  • create the application database :
postgres=# CREATE DATABASE sido WITH OWNER = sido ENCODING = 'UTF8' LC_COLLATE = 'fr_FR.UTF-8' LC_CTYPE = 'fr_FR.UTF-8';
  • quit psql with \q
  • give login rights to user sido:
$ sudo vi /etc/postgresql/<postgresql version>/main/pg_hba.conf
$ sudo /etc/init.d/postgresql reload
  • create the schema by executing the SQL scripts in the query/ folder, using the sido user, in the following order:
    1. $ psql -U sido -h localhost (login as command-line user sido)
    2. create_table_app.sql for application schema
    3. create_functions_triggers_workbook_history.sql to create triggers for inserting and deleting workbooks
    4. Optional: ScriptCreateSchema_ore_diapfc.sql for a functional dataset

NB: To execute a SQL script in the psql prompt: \i nom\du_script.sql.

2. Adding the project to an IDE

Currently, Eclipse (refers to Eclipse IDE for JavaEE Developers) is the mainly (only) IDE used to develop SIDO.

  • Import the project.
  • Define the Maven profile to be executed by clicking on the tempogwt project menu: Maven > Select Maven Profiles... (Ctrl+Alt+P). This choice of profile will allow to use one of the configurations defined in sido/sido-gwt/src/main/config/. To create a new one, add it in pom.xml and copy and paste an existing development profile, then modify it with the new values.

Necessary or useful extensions

3. Code quality

Code is written in English: class names, methods, properties, JavaDoc documentation. Ancillary documentation is written in French, located in /src/site/markdown/ as far as possible in text files (MarkDown, PlantUML for example). Documentation is generated by Maven with the mvn site command.

All classes, class methods and class properties must be documented as soon as they are designed, and updated each time they are modified.

Usage

1. Configuration

Refer to SIDO administration documentation (in French).

2. OpenID Connect

SIDO interacts with any identity provider that respects the specifications of OpenID Connect to return a given name, family name, an uid and optionally an email address.

To register a new OpenID Connect Identity Provider (OIDCIDP), SIDO must be registered on the website of the IDP. Then, add in oidcidp table the following : a name and a logo to display, an ID that will define the order in which the IDPs are displayed, an url, an issuer url (without the /.well-known/openid-configuration following), a client ID and client secret as filled when registered.

3. Set as administrator

To use SIDO you must configure at least one administrator account.

  1. Open the application in your browser (example: http://localhost:8080/sido-gwt/)
  2. Log in (user account registers in database)
  3. In the app_user table, set the app_user_admin field, in the row corresponding to the user, to true (to change the user account to administrator).

4. Add a Datasource

After model and parameter files were created :

  1. Create the database source schema. Example: See point 3. above with ORE DIAPFC. This SQL script was created using sido-cli and the parameter file.
  2. In the app_datasource table, enter:
    • Data source name
    • The schema corresponding to the SQL script executed previously
    • Names of Excel model and XML files for parameterization (insertion, verification)
  3. Admin account can upgrade any other account to be this datasource's moderator

Further documentation

Documentation files are available in the sido-gwt/src/main/resources/fr/soeretempo/sido/gwt/server/ folder in Markdown format and directly in the online application. This documentation covers:

Authors

See AUTHORS.md file.

Intellectual property

The app source code is under the GPL 3.0 licence, as described in LICENSE file. All trademarks and logos on the site are the property of the site editor or its partners, except in specific cases. You may not reuse them without prior written authorization, except to refer to this site or its partners.

Citation

Louis Tromel, Olivier O. Maury, Mohamed El Hasnaoui, Marie-Claude Quidoz, Iñaki Garcia de Cortazar-Atauri, et al.. SIDO. 2024, ⟨swh:1:dir:f149e8d9f72a6a6fba6ba724c5881433921872e9;origin=https://forgemia.inra.fr/tempo/sido;visit=swh:1:snp:e1de9de8f1232bef6c7a08a0af25ac9822a05ddb;anchor=swh:1:rev:95c090b0604070f7f15908bed95cb434747d8c9a⟩. ⟨hal-04906922⟩

Project status

Deployed at https://sido.pheno.fr/.