Newer
Older
Système d'Information pour les Données Orphelines
TROMEL LOUIS
committed
[](https://archive.softwareheritage.org/browse/origin/?origin_url=https://forge.inrae.fr/tempo/sido)
TROMEL LOUIS
committed
- 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
TROMEL LOUIS
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
## 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_)
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
> 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
- 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.
TROMEL LOUIS
committed
**1. Configuration**
Refer to [SIDO administration documentation](/sido-gwt/src/main/resources/fr/soeretempo/sido/gwt/server/SIDO-administration-fr.md) (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](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.
**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**
TROMEL LOUIS
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
## 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](/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)
See [`AUTHORS.md`](AUTHORS.md) file.
## Intellectual property
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.
TROMEL LOUIS
committed
### 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)
## Project status
Deployed at [https://sido.pheno.fr/](https://sido.pheno.fr/).