Skip to content
Snippets Groups Projects
README.md 7.06 KiB
Newer Older
Olivier Maury's avatar
Olivier Maury committed

Système d'Information pour les Données Orphelines
[![SWH](https://archive.softwareheritage.org/badge/origin/https://forge.inrae.fr/tempo/sido/)](https://archive.softwareheritage.org/browse/origin/?origin_url=https://forge.inrae.fr/tempo/sido)
- 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
Olivier Maury's avatar
Olivier Maury committed

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
Olivier Maury's avatar
Olivier Maury committed

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';
```
- 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_)
  1. `create_table_app.sql` for application schema
  1. `create_functions_triggers_workbook_history.sql` to create triggers for inserting and deleting workbooks
  1. Optional: `ScriptCreateSchema_ore_diapfc.sql` for a functional dataset
Olivier Maury's avatar
Olivier Maury committed

> NB: To execute a SQL script in the _psql_ prompt: `\i nom\du_script.sql`.
Olivier Maury's avatar
Olivier Maury committed

**2. Adding the project to an IDE**
Olivier Maury's avatar
Olivier Maury committed

Currently, Eclipse (refers to _Eclipse IDE for JavaEE Developers_) is the mainly (only) IDE used to develop SIDO.
Olivier Maury's avatar
Olivier Maury committed

- 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.
Olivier Maury's avatar
Olivier Maury committed

Necessary or useful extensions
Olivier Maury's avatar
Olivier Maury committed

- Eclipse Checkstyle plug-in
- GWT Plugin or a GWT SDK
- Lombok (installed from https://projectlombok.org/)
- Eclipse m2e
Olivier Maury's avatar
Olivier Maury committed

Olivier Maury's avatar
Olivier Maury committed

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.
Olivier Maury's avatar
Olivier Maury committed

All classes, class methods and class properties must be documented as soon as they are designed, and updated each time they are modified.
Olivier Maury's avatar
Olivier Maury committed

Olivier Maury's avatar
Olivier Maury committed

Refer to [SIDO administration documentation](/sido-gwt/src/main/resources/fr/soeretempo/sido/gwt/server/SIDO-administration-fr.md) (in French).
Olivier Maury's avatar
Olivier Maury committed

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](https://auth0.com/docs/authenticate/identity-providers/enterprise-identity-providers/oidc) (without the /.well-known/openid-configuration following),
a client ID and client secret as filled when registered.
Olivier Maury's avatar
Olivier Maury committed

**3. Set as administrator**
Olivier Maury's avatar
Olivier Maury committed

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).
Olivier Maury's avatar
Olivier Maury committed

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

Olivier Maury's avatar
Olivier Maury committed

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](/sido-gwt/src/main/resources/fr/soeretempo/sido/gwt/server/SIDO-administration-fr.md) (only in French),
- [Developer oriented documentation](/DEV_FR.md) (only in French),
- [JSON parameterization](/sido-gwt/src/main/resources/fr/soeretempo/sido/gwt/server/JSON-setting-fr.md) (only in French),
- [REST Web Services User Guide](/sido-gwt/src/main/resources/fr/soeretempo/sido/gwt/server/SIDO-webservices-fr.md) (only in French),
- [XML parameterization (French)](/sido-gwt/src/main/resources/fr/soeretempo/sido/gwt/server/xml-setting-fr.md) also in [English](/sido-gwt/src/main/resources/fr/soeretempo/sido/gwt/server/xml-setting-en.md),
- [SIDO application user guide (French)](/sido-gwt/src/main/resources/fr/soeretempo/sido/gwt/server/manual-fr.md) also in [English](/sido-gwt/src/main/resources/fr/soeretempo/sido/gwt/server/manual-en.md)
Olivier Maury's avatar
Olivier Maury committed

Olivier Maury's avatar
Olivier Maury committed

See [`AUTHORS.md`](AUTHORS.md) file.
Olivier Maury's avatar
Olivier Maury committed

The app source code is under the GPL 3.0 licence, as described in [`LICENSE`](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⟩](https://archive.softwareheritage.org/browse/swh:1:dir:f149e8d9f72a6a6fba6ba724c5881433921872e9;origin=https://forge.inrae.fr/tempo/sido;visit=swh:1:snp:e1de9de8f1232bef6c7a08a0af25ac9822a05ddb;anchor=swh:1:rev:95c090b0604070f7f15908bed95cb434747d8c9a).
> [⟨hal-04906922⟩](https://hal.inrae.fr/hal-04906922v1)

Deployed at [https://sido.pheno.fr/](https://sido.pheno.fr/).