Argonaut implements an Argo Global Data Assembly Centre (GDAC) as outlined in the Argo GDAC Cookbook.
Argonaut is a self-contained application with the only system dependency being a Java Runtime Environment, JRE 21+. Features of Argonaut include:
- File event driven - tar.gz files added to a DAC submit directory will trigger the ingest process.
- File event driven - DAC remove files added to the submit directory will trigger the profile / metadata removal process.
- Validation of data submissions with submission reports available to submitters.
- Optional FTP servers for DAC submission and public data dissemination.
- Optional web server for public file dissemination.
- Automatic generation of float profile merge files.
This project is still in development and not all requirements in the GDAC Cookbook have been implemented. The following features are on the short list of work to do:
- Automatic rejected file cleanup
- Automatic submission file cleanup
- Automatic deleted file cleanup
- Automatic index generation
- MD5 hash creation
- Submitter email notification
- Enhanced processing state persistence
The following are advanced features that could be implemented:
- Optional external FTP server data storage
- AWS S3 submission support
- AWS S3 data dissemination
Argonaut requires a Java Runtime Environment (JRE) of 21 or higher. JRE downloads are available from Oracle https://www.oracle.com/java/technologies/downloads/. There are also many alternative options for Java Development Kits (JDK), which include a JRE. One alternative is Temurin, https://adoptium.net/temurin/releases/. Follow the installation instructions for whichever option you choose.
Download the Argonaut installation for your desired version from https://github.com/CI-CMG/argonaut/releases. Each release will include several files, pick one of these:
- argonaut-service-<version>.zip (recommended) - A zip archive containing the Argonaut application, configuration templates, and start / stop scripts.
- argonaut-service-<version>.tar.gz - A gzipped tarball containing the Argonaut application, configuration templates, and start / stop scripts.
- argonaut-service-<version>-exe.jar - Only the Argonaut Java (Spring Boot) application without any supporting helper files.
If using the zip file, extract the archive to a location of your choosing:
unzip argonaut-service-<version>.zipor
tar -xvf argonaut-service-<version>.tar.gzIt is recommended, but not required, to set the JAVA_HOME environment variable to point to the location of your JRE installation. If JAVA_HOME is not set, Argonaut will use whichever version of the java executable is on your PATH.
That is it for the basic installation.
Argonaut can be run as a Linux service. For this, it is recommended to run Argonaut with a dedicated user.
To create a user run:
useradd argonautYou may also want to increase the number of file descriptors for that user.
A service setup script is provided to simplify the creation process.
- Navigate to the svc directory in the installation location
- Edit install-service.properties and set the _USER_and JAVA_HOME properties
- Run install-service.sh as root
For a list of configuration properties, see CONFIGURATION
All configuration properties can be set by environment variables. These will take precedence over values specified in the configuration file. Typically, all dots (periods) are replaced by underscores and all dashes are omitted. Upper case is preferred. More details can be found in the Spring Boot Externalized Configuration Documentation.
All JVM options passed to the application are located in config/jvm.options. Lines starting with "#" are comments and will be ignored. Sensible defaults have been selected. The service will need to be restarted for changes to take effect.
Logging is configured by the config/log4j2.xml file. Detailed configuration instructions can be found here: https://logging.apache.org/log4j/2.x/manual/configuration.html.
The most common changes would be adding loggers and changing levels though.
To add a logger add the following to the section:
<Logger name="com.foo.bar" level="info" additivity="false">
<AppenderRef ref="File"/>
</Logger>The name will be a package name (full or partial) or a class name. Level will be one of "fatal", "error", "warn", "info", "debug", or "trace".
To change the level of all loggers not explicitly set, update the level of the following entry in the file:
<Root level="warn">
<AppenderRef ref="File"/>
</Root>The ${sys:svc.home} placeholder can be used in the logging configuration and represents the absolute path to the service install location.
Changes made to this file do not require a restart. They will be picked up within 30 seconds.
To run the Argonaut (not as a Linux service), run run.sh in the installation directory. This will run Argonaut in the foreground. To run Argonaut in the background, run start-background.sh. To stop the background application, run stop-background.sh.
TODO
TODO
TODO
TODO