Connection Profiles
Connection profiles (.cyberduckprofile) are documents describing connection settings for a hosting provider.
Note
Connection profiles can be installed from Preferences → Profiles.
Installation
Connection profiles can be activated by either installing the file by double-clicking a .cyberduckprofile file to open and register or enabling in Preferences → Profiles.
Contributing Connection Profiles
Info
To contribute new connection profiles, open a pull request in the iterate-ch/profiles repository. Once the pull request is approved the profile will be available through the Preferences → Profiles tab in Mountain Duck and Cyberduck.
Technical File Format Specification
Note
Connection profile files (XML Property List Format) can be created for customers to make it easier to connect with a double-click on that file without entering the connection details manually. Contact us if you are a service provider and need assistance in setting this up.
The following properties can be defined in a connection profile:
Protocol(Required)Vendor(Hosting Provider) (Required)
Important
The value of Vendor must be unique among all installed connection profiles.
Description(Required)Default NicknamePrefilled bookmark name.Default HostnamePrefilled server name.Hostname ConfigurableBoolean if hostname is configurable.Hostname PlaceholderSuggestion for server name.Default PortPrefilled port number.Port ConfigurableBoolean if port number is configurable.Default PathSchemesAdditional array of schemes this profile can be referenced with in Cyberduck CLINote
All additional schemes are registered as a scheme handler when opening Mountain Duck. This allows to reference files and folders in a web application using a custom scheme like
customscheme:/(/<hostname>)/pathto open in Windows Explorer or Finder.Username ConfigurableBoolean if username is configurable.Username PlaceholderSuggestion for username in login credentials. Used for input field label when editing bookmark.Password PlaceholderSuggestion for password in login credentials. Used for input field label when editing bookmark.Password ConfigurableBoolean if password is configurable.DiskBase64 encoded disk TIFF image icon. Multi Page TIFF with formats64x64(72dpi) and128x128(144dpi) pixels.Tip
Use the
disk template fileto create a custom icon.IconBase64 encoded disk TIFF image icon to be used in protocol dropdown menu instead ofDiskiconContextCurrently used forLogin context path for OpenStack Swift profiles.
Prefix all requests with path for S3 profiles.
Anonymous ConfigurableBoolean if anonymous access is configurable.Path ConfigurableBoolean if default path is configurable.Certificate ConfigurableBoolean if client certificate is configurable.RegionLocation constraint for OpenStack Swift and S3 profiles.S3
This value is used for AWS4 signatures when no location can be deferred from the URI for third-party S3 providers.
RegionsList of regions supported by the provider. This will populate options in the Regions dropdown when creating a new top level folder for S3 and OpenStack Swift connections.OAuth Client IDFor protocols using OAuth 2.0 you can override the registered application client ID with the provider.A profile can omit the
OAuth Client IDto prompt the user for manual input when connecting.
OAuth Client SecretFor protocols using OAuth 2.0 you can override the registered application client secret with the provider.A profile can define an empty value for
OAuth Client Secret. The OAuth authorization flow will then use no client secret in client parameters to authenticate with the server.A profile can omit the
OAuth Client Secretto prompt the user for manual input when connecting.
AuthorizationSet toAWS2to default to AWS2 signature authentication for S3. Default isAWS4HMACSHA256.PropertiesList of custom protocol-specific properties. You can set hidden configuration options for a specific connection profile. Example usages can be found in:
Example
<?xml version="1.0" encoding="UTF-8"?>
<!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>swift</string>
<key>Vendor</key>
<string>hp</string>
<key>Description</key>
<string>HP Cloud Object Storage</string>
<key>Default Hostname</key>
<string>region-a.geo-1.identity.hpcloudsvc.com</string>
<key>Default Port</key>
<string>35357</string>
<key>Schemes</key>
<array>
<string>hp</string>
<string>https</string>
</array>
<key>Hostname Configurable</key>
<false/>
<key>Port Configurable</key>
<false/>
<key>Context</key>
<string>/v2.0/tokens</string>
<key>Username Placeholder</key>
<string>Tenant ID:Access Key</string>
<key>Password Placeholder</key>
<string>Secret Key</string>
<key>Properties</key>
<dict>
<key>property name</key>
<string>property value</string>
</dict>
<key>Disk</key>
<string>
TU0AKgAFiw6AACBQOCQWDQeEQmFQuGQ2HQ+IRGJROKRWLReMRmNRuOR2PR+QSGRSOSSWTSeU
SmVSuWS2XS+YTGZTOaTWbTecTmdTueT2fT+gUGhUOiUWjUekUmlUumU2nU+oVGpVOqVWrVes
VmtVuuV2vV+wWGxWOyWWzWe0Wm1Wu2W23W+4XG5XO6XW7Xe8Xm9Xu+X2/X/AYHBYPCYXDYfE
YnFYvGY3HY/IZHJZPKZXLZfMZnNZvOZ3PZ/QaHRaPSaXTafUanVavWa3Xa/YbHZbPabXbbfc
bndbveb3fb/gcHhcPicXjcfkcnlcvmc3nc/odHpdPqdXrdfsdntdvud3vd/weHxePyeXzef0
en1ev2e33e/4fH5fP6fX7ff8fn9fv+f3/P/AEAwFAcCQLA0DwRBMFQXBkGwdB8IQjCUJwpCs
LQvDEMw1DcOQ7D0PxBEMRRHEkSxNE8URTFUVxZFsXRfGEYxlGcaRrG0bxxHMdR3Hkex9H8gS
DIUhyJIsjSPHAAyUAMkSbJ0nyhKMpSmkh/ysf8qSzLUtotJcmS5MEwzFMcyTLMMryxM01TXE
cvIZNyNzhNk5zpOs7TvPDfzQjk9onPs80BQL0TkgtCIJQlDIHRKDApRoXgPSAIA4DgNh8glJ
g2H6EUaCwXAQBADghKyBSUiVRgBUqs1PVKGSvVFWJ3NNUVNNNYM1VcvrLWVcoHXCDV8AFgIJ
V0loLYSWTTLEsWLYda15XtFJlY7BWmn1dp1YFqrTa6O20g9vI1YlbKpcFdWdB9uLxcqYXWol
…
/aMAAAPcAADAbA==
</string>
<key>Regions</key>
<array>
<string>custom</string>
<string>custom2</string>
</array>
</dict>
</plist>
Disk Icon Template
Icon Set
Create a multi-TIFF containing the needed icon sizes:
Create a high-resolution .png file based on the PSD template
Use the following script to generate the different resolutions and the multi-TIFF disk.tiff file:
png=[LOCATION_OF_HIGH_RESOLUTION_PNG] tmp=$TMPDIR target=[TARGET_FOLDER] /usr/bin/sips -s format png -z 128 128 -s dpiHeight 144.0 -s dpiWidth 144.0 ${png} --out ${tmp}/icon_64x64@2x.png /usr/bin/sips -s format png -z 64 64 -s dpiHeight 72.0 -s dpiWidth 72.0 ${png} --out ${tmp}/icon_64x64.png /usr/bin/sips -s format png -z 96 96 -s dpiHeight 144.0 -s dpiWidth 144.0 ${png} --out ${tmp}/icon_96@2x.png /usr/bin/sips -s format png -z 48 48 -s dpiHeight 72.0 -s dpiWidth 72.0 ${png} --out ${tmp}/icon_96.png /usr/bin/sips -s format png -z 256 256 -s dpiHeight 144.0 -s dpiWidth 144.0 ${png} --out ${tmp}/icon_256@2x.png /usr/bin/sips -s format png -z 128 128 -s dpiHeight 72.0 -s dpiWidth 72.0 ${png} --out ${tmp}/icon_256.png /usr/bin/tiffutil -cathidpicheck ${tmp}/icon_64x64@2x.png ${tmp}/icon_64x64.png ${tmp}/icon_96.png ${tmp}/icon_96@2x.png ${tmp}/icon_256.png ${tmp}/icon_256@2x.png -out ${target}/ disk.tiffUse the command
cat disk.tiff | base64 -b 70to generate the base64 version of the multi-TIFF file. This final version will be used for the connection profile.
Sample Connection Profiles
Google Custom OAuth Client ID
S3 and OpenID Connect Federation
Customization of connection profiles using OpenID Connect provider and AssumeRoleWithWebIdentity STS API