[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