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/06 09:46] – Added some more text 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 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.  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 task using (simple) scripts. A presentation of such scrips is outside of the scope of this section.+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! +**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 ===== ===== 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 ===== ===== 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 ===== ===== gocommands =====
-===== iBridges (GUI) =====+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-basedsearch 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]].