.. _admin-plugins: Plugins ======= Repository ---------- Opal plugins available are: .. list-table:: :header-rows: 1 * - Name - Type - Description - Depends - API * - `opal-search-es `_ - opal-search - | Opal search engine based on Elasticsearch 2.4. Can be used embedded in Opal (default) | or configured to connect to an Elasticsearch cluster. - No dependencies - `Search Plugin API `_ * - `jennite-vcf-store `_ - vcf-store - | Stores the genotypes in Variant Call Format (VCF) files (binary flavor, BCF, is also supported). | VCF/BCF files can be downloaded filtered by participant phenotype criteria. - `htslib executables `_ (bcftools, tabix, bgzip) - `VCF Store Plugin API `_ * - `opal-datasource-limesurvey `_ - opal-datasource - Connects to a Limesurvey database to extract variables and data. - No dependencies - `Datasource Plugin API `_ * - `opal-datasource-redcap `_ - opal-datasource - Connects to a REDCap server to extract variables and data. - No dependencies - `Datasource Plugin API `_ * - `opal-datasource-spss `_ - opal-datasource - Java implementation of a SPSS file reader. - No dependencies - `Datasource Plugin API `_ * - `opal-datasource-readr `_ - opal-datasource - R implementation of a rectangular format file reader, based on `readr `_. - R server - `Datasource Plugin API `_ * - `opal-datasource-readxl `_ - opal-datasource - R implementation of a Excel file reader/writer, based on `readxl `_/`writexl `_. - R server - `Datasource Plugin API `_ * - `opal-datasource-googlesheets4 `_ - opal-datasource - R implementation of a Google Sheets reader, based on `googlesheets4 `_. - R server - `Datasource Plugin API `_ * - `opal-datasource-validate `_ - opal-analysis - R implementation of a data and mete-data validator, based on `validate `_. - R server - `Analysis Plugin API `_ Installation ------------ All plugins are to be deployed as a directory at the following location: **OPAL_HOME/plugins**. Automatic Installation ~~~~~~~~~~~~~~~~~~~~~~ Because having a search engine is an absolute requirement, Opal server will check at startup that there is a plugin of type ``opal-search`` and if it's not the case, the latest version of the `opal-search-es `_ plugin (that applies to the current Opal server version) will be automatically downloaded and installed without needing a server restart. If for any reason this plugin cannot be automatically downloaded (network issue), the Opal start-up will fail and you will need to install the plugin manually. Manual Installation ~~~~~~~~~~~~~~~~~~~ Available plugins can be downloaded from `OBiBa Plugins Repository `_. The manual installation procedure should be performed as follow: * Download the plugin of interest (zip file) from `OBiBa Plugins Repository `_, * Unzip plugin package in **OPAL_HOME/plugins** folder. Note that the plugin folder name does not matter, Opal will discover the plugin through the plugin.properties file that is expected to be found in the plugin folder. * Read the installation instructions (if any) of the plugin to identify the system dependencies or any other information, * Restart Opal. Configuration ------------- The OPAL_HOME/plugins folder contains all the Opal plugins that will be inspected at startup. A plugin is enabled if it has: * A valid plugin.properties file, * In case of several versions of the same plugin are installed, the latest one is selected. The layout of the plugin folder is as follow: .. code-block:: text OPAL_HOME/ └── plugins └── ├── lib │ └── .jar ├── LICENSE.txt ├── README.md ├── plugin.properties └── site.properties Inside the plugin's folder, a properties file, plugin.properties, has two sections: * The required properties that describe the plugin (name, type, version etc.) * Some default properties required at runtime (path to third-party executables for instance). Still in the plugin's folder, a site-specific properties file, site.properties, is to be used for defining the local configuration of the plugin. Note that this file will be copied when upgrading the plugin. Backups ------- Opal assigns a data folder location to the plugin: **OPAL_HOME/data/** where plugin-name is the name defined in the plugin.properties file. This folder is then the one to be backed-up.