Next revision | Previous revision |
rdms:access:other [2025/02/05 10:57] – created jelte | rdms:access:other [2025/02/10 14:52] (current) – [Other Clients] added bold giulio |
---|
| {{indexmenu_n>5}} |
====== Other Clients ====== | ====== Other Clients ====== |
**Work in progress.** This section will explain other clients. | This section gives an overview of further clients that can be used to access the RDMS. Most of the presented solutions on this page are **OS-independent**, so they can be used on Linux, Mac, and Windows operating systems. |
| |
| Except iBridges GUI, all of the presented clients are commandline-based, so familiarity with the CLI is expected. Due to being CLI clients, all presented tools can be used to automate tasks using (simple) scripts. A presentation of such scrips is outside of the scope of this section. |
| |
| **Note**: The RDMS support team **can't help you with problems with these clients**. In case of trouble, your first point of contact should be the developers of the respective clients! |
| |
| ===== Python iRODS Client ===== |
| |
| iRODS, the data management software that the RDMS is built-on, also provides a Python-based client called "Python iRODS Client (PRC)". |
| |
| PRC can be installed in your Python environment using pip: |
| |
| '' |
| $ pip install python-irodsclient |
| '' |
| |
| For further documentation, please look at the [[https://github.com/irods/python-irodsclient|official Github repository of the PRC]] or the information available via [[https://pypi.org/project/python-irodsclient/|PyPI]]. |
| |
| Using the PRC has a relative steep learning curve. For a slightly less powerful, but similar, Python-based tool also look at [[https://github.com/iBridges-for-iRODS/iBridges|iBridges (CLI)]]. |
| ===== iCommands in Docker ===== |
| It is also possible to run the official iRODS iCommands in a [[https://www.docker.com/|Docker]] container. |
| |
| A UG researcher provides a pre-configured Docker image for this. Please have a look at the [[https://git.lwp.rug.nl/chimera/irods-icommands|official documentation in Gitlab]]. |
| |
| The image comes pre-configured with the iCommands package. To see how to use the different available commands, please refer to the [[rdms:access:linux:icommands|iCommands wiki section]]. |
| |
| ===== gocommands ===== |
| The official CLI tool of iRODS, the [[rdms:access:linux:icommands|iCommands]], are only available for certain Linux distributions. While it is possible to use a Docker container to make the iCommands available on unsupported devices, using [[https://github.com/cyverse/gocommands|gocommands]] can be another alternative for these systems. |
| |
| Gocommands is written in Golang and the developer provides binaries for different operating systems (Windows, Mac, Linux, etc). It is very simple to use and basically only requires a configuration file and having the binary present on the local system. No further installation steps are needed. |
| |
| Furthermore, gocommands comes with certain commands that are not even available in the original iCommands. For example, there is a command (''bput'') that locally bundles data, then uploads to the remote archive (RDMS), and then automatically unbundles again. This can improve transfer speeds quite significantly. |
| |
| For a further overview about setting up gocommands and an overview about its functionality, please have a look at the [[https://github.com/cyverse/gocommands|official gocommands Github repository]]. |
| |
| The easiest way to configure gocommands is by creating a ''irods_environment.json'' file in a ''.irods'' location in your users home directory. The ''irods_environment.json'' from the [[rdms:access:linux:icommands|iCommands wiki section]] can be used. Gocommands and iCommands configuration files can be used interchangeably. |
| |
| Alternatively, it is also possible to create a separate configuration in YAML format as [[https://github.com/cyverse/gocommands/blob/main/examples/config_pam.yaml|mentioned in the gocommands Github repository]]. |
| |
| A possible example YAML is provided below: |
| |
| <hidden Click to display configuration file for Default zone><code> |
| irods_host: "store.data.rug.nl" |
| irods_port: 1247 |
| irods_user_name: "<emailaddress>" |
| irods_zone_name: "rug" |
| irods_user_password: "" |
| irods_default_resource: "rootResc" |
| irods_client_user_name: "" |
| irods_log_level: 5 |
| irods_authentication_scheme: "pam" |
| irods_client_server_negotiation: "request_server_negotiation" |
| irods_client_server_policy: "CS_NEG_REQUIRE" |
| irods_ssl_ca_certificate_file: "/etc/ssl/certs/ca-certificates.crt" |
| irods_encryption_key_size: 32 |
| irods_encryption_algorithm: "AES-256-CBC" |
| irods_encryption_salt_size: 8 |
| irods_encryption_num_hash_rounds: 16 |
| </code></hidden>\\ |
| |
| Please refer to the info in the [[https://github.com/cyverse/gocommands|gocommands Github repository]] for more help. |
| |
| ===== iBridges ===== |
| [[https://github.com/iBridges-for-iRODS|Bridges]] is a wrapper around the PRC which has some more limited functions, but is easier to learn. Two versions exists, one CLI-based which can be used for own scripts/code, while there is an additional GUI that can be used on top of it. |
| ==== iBridges CLI ==== |
| [[https://github.com/iBridges-for-iRODS/iBridges|iBridges CLI]] is the main wrapper for the PRC. It allows to transfer data, adjust permissions, work with metadata, etc. |
| The tool can be installed in your Python environment via |
| '' |
| pip install ibridges |
| '' |
| |
| For more info on how to use iBridges, look at the official [[https://ibridges.readthedocs.io/en/latest/|iBridges documention]] as well as the [[https://github.com/iBridges-for-iRODS/iBridges/tree/develop/tutorials|examples provided in the iBridges Github repository]]. |
| ==== iBridges GUI ==== |
| [[https://github.com/iBridges-for-iRODS/iBridges-GUI|iBridges GUI]] is the graphical user interface for iBridges. It's use is similar to using [[rdms:access:windows:cyberduck|Cyberduck]], but it is more powerful as iBridges GUI also allows to manage user permissions, work with metadata, and also comes with an integrated (metadata-based) search function. In contrast, Cyberduck only allows file transfers. |
| |
| To install iBridges GUI in your current Python environment, you can run |
| '' |
| pip install ibridgesgui |
| '' |
| |
| For further information about its setup and usage, please consult the official [[https://ibridges-for-irods.github.io/iBridges-GUI/|iBridges GUI documentation]]. |
| |
| ===== NixOS and Nix Package Manager ===== |
| While not being officially supported by iRODS, the iCommands package is also available from the [[https://search.nixos.org/|Nix package repository]] (open repository, then search for "irods-icommands"). |
| |
| This allows to install iCommands on NixOS, but also on other operating systems that have the Nix package manager installed. See the [[https://nixos.org/download/|official Nix documentation]] for info on how to install these. After installation of the package, the further usage of iCommands is then similar as described in the [[rdms:access:linux:icommands|iCommands wiki section]]. |