[Cyberduck-trac] [Cyberduck] #9711: Support Manta Object Store

Cyberduck trac at cyberduck.io
Mon May 8 21:06:11 UTC 2017


#9711: Support Manta Object Store
---------------------+--------------------
 Reporter:  elijah   |         Owner:
     Type:  feature  |        Status:  new
 Priority:  low      |     Milestone:
Component:  core     |       Version:  5.1
 Severity:  normal   |    Resolution:
 Keywords:           |  Architecture:
 Platform:           |
---------------------+--------------------

Comment (by tjcelaya):

 Hey there, Tomas from Joyent here, I've been using Cyberduck for years now
 and want to contribute to the project. I'm researching what it would take
 to implement this and had a look at
 [[https://trac.cyberduck.io/ticket/9799|ticket #9799]] along with the
 associated [[https://trac.cyberduck.io/changeset/38915|changeset]] which
 added support for Microsoft OneDrive. After reviewing the changes and
 getting project building locally, I'm interested in implementing a storage
 provider for Manta within Cyberduck. Following the example of r38915, it
 looks like the steps for adding a new provider is as follows:

 * Create a new module in the the top-level cyberduck project and add it to
 the root project `pom.xml`
 * extend `AbstractProtocol` and register the new protocol in
 `ch.cyberduck.cli.Terminal` and `ch.cyberduck.ui.cocoa.MainApplication`
 * add defaults to `ch.cyberduck.core.preferences.Preferences`
 * implement interfaces under `ch.cyberduck.core.features.*` within the new
 module
 * create a cyberduckprofile describing the connection information required
 (server, manta user/subuser, manta key id) and the field labels
 * potentially, add new params to AbstractProtocol to reflect the usage of
 an SSH Key Fingerprint instead of a user password or client secret

 Please let me know if I've missed any critical details or there are any
 points in need of clarfication. The divergence in terminology for the
 authentication secret stems from the fact that authentication for Manta
 relies on a combination of username and an SSH Key fingerprint for a key
 that has previously been uploaded to the Manta instance in use (see
 [[https://apidocs.joyent.com/manta/#setting-up-your-environment|Setting Up
 Your Environment]] in the Manta documentation for details). Since
 Cyberduck provides a dropdown field for supplying an SSH Private Key in
 addition to text input for passwords there is some ambiguity regarding the
 best approach to take, please see Question 1 for some proposals about how
 to handle this.

 Questions:

 1. The `Open Connection` dialog includes fields for both Password/AuthCode
 and an SSH private key. This gives us some options for authenticating
 users (since the labels are configurable, Password will refer to the text
 input and SSH Private Key refers to the dropdown that is enabled when the
 SFTP protocol is chosen):
     1. disabling the Password field and expecting users to select a SSH
 Private Key. This seems to be the most intuitive to handle key selection.
     2. disabling the SSH Private Key field and expecting users to supply
 the key fingerprint in the Password field, similarly to the way the Manta
 documentation asks users to set the `MANTA_KEY_ID` environment variable.
 This aligns with Manta CLI configuration but is not user-friendly.
 2. Sonar is mentioned on the main page of the
 [[https://trac.cyberduck.io/|issue tracker]] but is inaccessible through
 https://sonar.cyberduck.io/ and I couldn't find any style-checking plugin
 in the project, is there a different code style tool in use?
 3. The modifications in
 https://trac.cyberduck.io/changeset/38915/trunk/Cyberduck.xcodeproj/project.pbxproj
 refer to resources being added to the Xcode Project. Are there any special
 considerations around adding to this file or would I be able to make this
 change myself?
 4. The `java-manta` library allows for optional
 [[https://github.com/joyent/java-manta#client-side-encryption|Client-Side
 Encryption]] while the Cyberduck roadmap indicates support for Cryptomator
 is being added. Handling encryption through Manta's client library could
 lead to issues and confusion, in addition to requiring us to either
 collect more configuration options or force certain settings from
 Cyberduck. How the Manta provider in Cyberduck will support encryption is
 still an open question I'd like to discuss further once these questions
 are ironed out.

--
Ticket URL: <https://trac.cyberduck.io/ticket/9711#comment:4>
Cyberduck <https://cyberduck.io>
Libre FTP, SFTP, WebDAV, S3 & OpenStack Swift browser for Mac and Windows


More information about the Cyberduck-trac mailing list