SIDO
Système d'Information pour les Données Orphelines
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 thesido
user, in the following order:-
$ psql -U sido -h localhost
(login as command-line user sido) -
create_table_app.sql
for application schema -
create_functions_triggers_workbook_history.sql
to create triggers for inserting and deleting workbooks - 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 insido/sido-gwt/src/main/config/
. To create a new one, add it inpom.xml
and copy and paste an existing development profile, then modify it with the new values.
Necessary or useful extensions
- Eclipse Checkstyle plug-in
- GWT Plugin or a GWT SDK
- Lombok (installed from https://projectlombok.org/)
- Eclipse m2e
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.
- Open the application in your browser (example: http://localhost:8080/sido-gwt/)
- Log in (user account registers in database)
- 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 :
- 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.
- 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)
- 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:
- SIDO installation, configuration and administration (only in French),
- Developer oriented documentation (only in French),
- JSON parameterization (only in French),
- REST Web Services User Guide (only in French),
- XML parameterization (French) also in English,
- SIDO application user guide (French) also in English
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://forge.inrae.fr/tempo/sido;visit=swh:1:snp:e1de9de8f1232bef6c7a08a0af25ac9822a05ddb;anchor=swh:1:rev:95c090b0604070f7f15908bed95cb434747d8c9a⟩. ⟨hal-04906922⟩
Project status
Deployed at https://sido.pheno.fr/.