Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 99 additions & 0 deletions iRODS.cyberduckprofile
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2002-2017 iterate GmbH. All rights reserved.
~ https://cyberduck.io/
~
~ This program is free software; you can redistribute it and/or modify
~ it under the terms of the GNU General Public License as published by
~ the Free Software Foundation; either version 2 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details.
-->

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Protocol</key>
<string>irods</string>
<key>Vendor</key>
<string>iRODS Consortium</string>
<key>Description</key>
<string>iRODS (Integrated Rule-Oriented Data System)</string>

<key>Hostname Configurable</key>
<true/>
<key>Port Configurable</key>
<true/>

<key>Default Port</key>
<string>1247</string>

<!-- The zone of the iRODS server to connect to. -->
<!-- For backward compatibility, a root resource can be specified by appending ":<resouce>" to the zone. -->
<!-- The specified resource is only used when uploading files. -->
<!-- Prefer setting "Destination Resource" under the "Properties" section. -->
<key>Region</key>
<string>tempZone</string>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be kept empty to connect to a default zone or is this zone always available?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not at this time. All iRODS clients are required to manually define the zone in order to connect.


<!-- The authentication scheme used to establish a connection to an iRODS server. -->
<!-- Must be set to "native" or "pam_password". "standard" is an alias for "native". -->
<key>Authorization</key>
<string>native</string>

<key>Properties</key>
<dict>
<!-- The root resource to target when uploading files. -->
<!-- DO NOT define this option unless needed. -->
<!-- This option supersedes any resource defined by "Region". -->
<!--
<key>Destination Resource</key>
<string>demoResc</string>
-->

<!-- Controls whether deletion of an object permanently removes or moves it into the trash collection. -->
<key>Delete Objects Permanently</key>
<string>no</string>

<!-- The size (in bytes) of a file that must be exceeded before using parallel transfer. -->
<!-- The value must satisfy the range [1, 2^31-1]. -->
<key>Parallel Transfer Threshold</key>
<string>33554432</string>

<!-- The number of iRODS connections used for parallel transfer of a single file. -->
<!-- Each transfer will use the specified number of iRODS connections. -->
<!-- The value must satisfy the range [2, 10]. -->
<key>Parallel Transfer Connections</key>
<string>3</string>

<!-- The buffer size (in bytes) used for parallel transfer of a single file. -->
<!-- Applies to uploads and downloads. -->
<!-- The value must satisfy the range [1, 128MB]. -->
<key>Parallel Transfer Buffer Size</key>
<string>4194304</string>

<!-- Secure Communication Options -->

<!-- Must be set to "CS_NEG_REQUIRE", "CS_NEG_DONT_CARE", or "CS_NEG_REFUSE". -->
<!-- - CS_NEG_REQUIRE: Demand TLS be used. -->
<!-- - CS_NEG_DONT_CARE: Let the server decide if TLS should be used. -->
<!-- - CS_NEG_REFUSE: Do not use TLS. -->
<key>Client Server Negotiation</key>
<string>CS_NEG_REFUSE</string>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't CS_NEG_DONT_CARE be the better default?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In theory, yes. However, we've leaned into keeping things as explicit as possible to force the user to think about what they are doing. For most users, it's likely better to avoid CS_NEG_DONT_CARE until they really need it.

CS_NEG_REFUSE is the common default used by iRODS clients.

Regardless, all users of this profile will likely need to modify the configuration because of things like the Region/Zone.

Question ... If a user needs different configuration because they are working with different iRODS deployments, will they need to make a copy of the profile under a different name?

I suspect they would since there doesn't appear to be a way to change options like these through the GUI.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Each profile must have a unique value for the Vendor key.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you explain? I don't understand how the Vendor property affects things, so it hasn't clicked for me how that solves the multi iRODS deployment case.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh wait, you're highlighting that making a copy would also require updating the Vendor due to a uniqueness constraint.

And that seems okay since the Protocol key defines the which protocol to use.


<!-- Options which are only used when TLS is active. -->

<key>Encryption Algorithm</key>
<string>AES-256-CBC</string>
<key>Encryption Key Size</key>
<string>32</string>
<key>Encryption Salt Size</key>
<string>8</string>
<key>Encryption Hash Rounds</key>
<string>16</string>
</dict>
</dict>
</plist>