Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
rdms:access:other [2025/02/05 10:59] – added indexmenu jelterdms:access:other [2025/02/10 14:52] (current) – [Other Clients] added bold giulio
Line 1: Line 1:
 {{indexmenu_n>5}} {{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:
 +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:
 +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]].