Skip to content

Commit d64597c

Browse files
committed
Update iRODS documentation to align with irods4j refactor
1 parent 9bba732 commit d64597c

File tree

1 file changed

+120
-22
lines changed

1 file changed

+120
-22
lines changed

protocols/irods.md

Lines changed: 120 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
iRODS (Integrated Rule-Oriented Data System)
22
====
33

4-
> The Integrated Rule-Oriented Data System (iRODS) is an open-source data management software used by research organizations and government agencies worldwide.
4+
The Integrated Rule-Oriented Data System (iRODS) is an open-source, policy-based data management software used by research, commercial, and governmental organizations worldwide.
55

66
:::{admonition} iRODS ...
77
:class: tip
88

99
- ... enables data discovery using a metadata catalog that describes every file, every directory, and every storage resource in the data grid.
1010
- ... automates data workflows, with a rule engine that permits any action to be initiated by any trigger on any server or client in the grid.
1111
- ... enables secure collaboration, so users only need to log in to their home grid to access data hosted on a remote grid.
12-
- ... implement data virtualization, allowing access to distributed storage assets under a unified namespace, and freeing organizations from getting locked into single-vendor storage solutions.
12+
- ... implements data virtualization, allowing access to distributed storage assets under a unified namespace, and freeing organizations from getting locked into single-vendor storage solutions.
13+
:::
14+
15+
:::{important}
16+
Requires iRODS 4.3.2 or newer.
1317
:::
1418

1519
## Connecting
@@ -22,49 +26,143 @@ Connection profiles can be installed from *Preferences → Profiles*.
2226

2327
### Provider
2428

25-
- [CyVerse Data Store](http://www.cyverse.org/data-store) (Formerly iPlant Collaborative) - {download}`Connection Profile<https://profiles.cyberduck.io/iRODS%20(iPlant%20Collaborative).cyberduckprofile>`
26-
- RENCI - {download}`Connection Profile<https://profiles.cyberduck.io/iRODS%20(RENCI).cyberduckprofile>`
27-
- TACC - {download}`Connection Profile<https://profiles.cyberduck.io/iRODS%20(TACC).cyberduckprofile>`
29+
A general purpose iRODS connection profile is available {download}`here<https://profiles.cyberduck.io/iRODS.cyberduckprofile>`.
30+
31+
All configuration properties described on this page are also documented in the connection profile.
2832

2933
### Authentication
3034

31-
#### Authentication With Native Scheme
35+
#### Authentication with the Native scheme
3236

33-
This is the default with no additional configuration required.
37+
To authenticate, set the **Authorization** value to `native` or `standard` in the [connection profile](index.md#connection-profiles). Defaults to `native`.
38+
39+
```
40+
<key>Authorization</key>
41+
<string>native</string>
42+
```
43+
44+
`standard` is an alias for `native`. It is provided for backward compatibility.
45+
46+
#### Authentication with the PAM scheme
47+
48+
:::{note}
49+
PAM requires a secure connection to the server. See [Secure Communication](#secure-communication) to learn more.
50+
:::
51+
52+
To authenticate with PAM, set the **Authorization** value to `pam_password` or `pam` in the [connection profile](index.md#connection-profiles).
53+
54+
```
55+
<key>Authorization</key>
56+
<string>pam_password</string>
57+
```
58+
59+
`pam` is an alias for `pam_password`. It is provided for backward compatibility.
60+
61+
#### Configuring the iRODS Zone
62+
63+
The zone of the target server must be specified before connecting to it. To do that, set the **Region** value in the [connection profile](index.md#connection-profiles).
64+
65+
```
66+
<key>Region</key>
67+
<string>zone_name</string>
68+
```
3469

35-
#### Authentication With PAM Scheme
70+
### Secure Communication
3671

37-
To authenticate with PAM, prefix the username with PAM:or set it in the [connection profile](index.md#connection-profiles) using as
72+
To require secure communication, you must first set the **Client Server Negotiation** value to `CS_NEG_REQUIRE` in the [connection profile](index.md#connection-profiles).
3873

3974
```
40-
<key>Authorization</key>
41-
<string>PAM</string>
75+
<key>Properties</key>
76+
<dict>
77+
<key>Client Server Negotiation</key>
78+
<string>CS_NEG_REQUIRE</string>
79+
</dict>
4280
```
4381

44-
### Resource Server
82+
Set the value to `CS_NEG_DONT_CARE` to let the server decide whether to use secure communication. Set it to `CS_NEG_REFUSE` to require an insecure channel. If the client and server cannot agree on how to proceed, the connection will fail and result in an error.
4583

46-
You can specify a non-default resource server in the Region key of the [connection profile](index.md#connection-profiles) using a colon-separated syntax (Issue [#8721](https://github.com/iterate-ch/cyberduck/issues/8721)) such as
84+
Next, configure the encryption values to match those of the server. Consult the administrator of the iRODS zone to obtain the correct values.
4785

4886
```
49-
<key>Region</key>
50-
<string>iplant:storageresourcename</string>
87+
<key>Properties</key>
88+
<dict>
89+
<key>Encryption Algorithm</key>
90+
<string>AES-256-CBC</string>
91+
92+
<key>Encryption Key Size</key>
93+
<string>32</string>
94+
95+
<key>Encryption Salt Size</key>
96+
<string>8</string>
97+
98+
<key>Encryption Hash Rounds</key>
99+
<string>16</string>
100+
</dict>
101+
```
102+
103+
#### Storage Resource
104+
105+
To upload files to a specific resource, set the **Destination Resource** value in the [connection profile](index.md#connection-profiles). The specified resource must be the root of a resource hierarchy. This property supersedes any resource defined by the **Region** property.
106+
107+
```
108+
<key>Properties</key>
109+
<dict>
110+
<key>Destination Resource</key>
111+
<string>resource_name</string>
112+
</dict>
113+
```
114+
115+
For backward compatibility, it can also be set by appending the name of the resource to the **Region**'s value. This method may be removed in the future.
116+
117+
```
118+
<key>Region</key>
119+
<string>zone_name:resource_name</string>
51120
```
52121

53122
## Transfers
54123

55-
### Use Parallel Connections
124+
### Parallel Transfer
125+
126+
Large file uploads will use parallel transfer when the requirements are satisfied. By default, a file must be larger than 32MB in order to trigger parallel transfer.
56127

57-
If [multiple connections](../cyberduck/transfer.md#connections) are configured by default in *Preferences* or set in the bookmark options with *Transfer Files: Open multiple connections*, get and put transfers to the data store use parallel concurrent connections.
128+
The default values for parallel transfer are shown below. Descriptions of each property follow.
58129

59-
![Open multiple connections](_images/Use_parallel_transfer_option.png)
130+
```
131+
<key>Properties</key>
132+
<dict>
133+
<key>Parallel Transfer Threshold</key>
134+
<string>33554432</string>
135+
136+
<key>Parallel Transfer Connections</key>
137+
<string>3</string>
138+
139+
<key>Parallel Transfer Buffer Size</key>
140+
<string>4194304</string>
141+
</dict>
142+
```
143+
144+
**Parallel Transfer Threshold** is the size (in bytes) of a file to upload that must be exceeded before parallel transfer is used. The value must satisfy the range [1, 2<sup>31</sup>-1].
60145

61-
The number of parallel connections is controlled using the lower right stepper control in the [Transfers](../cyberduck/transfer.md) window.
146+
**Parallel Transfer Connections** is the number of connections used to upload a single file when parallel transfer is used. The value must satisfy the range [2, 10].
62147

63-
![Limit Number of Transfers](_images/Limit_Number_of_Transfers.png)
148+
**Parallel Transfer Buffer Size** is the size (in bytes) of each buffer used to transfer bytes to the server. This property applies to uploads and downloads. The value must satisfy the range [1, 128MB].
149+
150+
### Trash Policy
151+
152+
To delete data objects and collections permanently, set the **Delete Objects Permanently** value to `yes` in the [connection profile](index.md#connection-profiles). Defaults to `no`.
153+
154+
```
155+
<key>Properties</key>
156+
<dict>
157+
<key>Delete Objects Permanently</key>
158+
<string>yes</string>
159+
</dict>
160+
```
64161

65162
## References
66163

67-
- [irods.org](http://irods.org/)
164+
- [irods.org](https://irods.org/)
165+
- [docs.irods.org](https://docs.irods.org/)
68166
- [Downloading and Uploading Data](https://cyverse.atlassian.net/wiki/spaces/DS/pages/241869862/Downloading+and+Uploading+Data)
69167
- [Using Cyberduck for Uploading and Downloading to the Data Store](https://cyverse.atlassian.net/wiki/spaces/DS/pages/241869843/Using+Cyberduck+for+Uploading+and+Downloading+to+the+Data+Store)
70-
- [iRODS Error Events](https://github.com/irods/irods-legacy/blob/master/iRODS/lib/core/include/rodsErrorTable.h)
168+
- [iRODS Error Codes](https://github.com/irods/irods/blob/main/lib/core/include/irods/rodsErrorTable.h)

0 commit comments

Comments
 (0)