@@ -607,22 +607,23 @@ contain the following information about its OCM API:
607607 support at least `webdav`,
608608 any other combination of Resources and protocols is
609609 optional. Example :
610- ` json
610+ ` ` ` json
611611 {
612612 "webdav": "/remote/dav/ocm/",
613613 "webapp": "/app/ocm/",
614614 "talk": "/apps/spreed/api/"
615615 }
616- `
616+ ` ` `
617617 Fields :
618618 - webdav (string) - The top-level WebDAV [RFC4918] path at this
619619 endpoint. In order to access a Remote Resource, implementations
620- MAY use this path as a prefix, or as the full path (see sharing
621- examples).
620+ SHOULD use this path as a prefix (see sharing examples).
622621 - webapp (string) - The top-level path for web apps at this
623- endpoint. This value is provided for documentation
624- purposes, and it SHOULD NOT be intended as a prefix
625- for share requests.
622+ endpoint. In order to access a remote web app, implementations
623+ SHOULD use this path as a prefix (see sharing examples).
624+ - ssh (string) - The top-level address in the form `host:port`
625+ of an endpoint that supports ssh and scp with a public/private
626+ key based authentication.
626627 - Any additional protocol supported for this Resource type MAY be
627628 advertised here, where the value MAY correspond to
628629 a top-level URI to be used for that protocol.
@@ -768,7 +769,8 @@ To create a Share, the Sending Server SHOULD make a HTTP POST request
768769* REQUIRED protocol (object)
769770 JSON object with specific options for each protocol.
770771 The supported protocols are : - `webdav`, to access the data -
771- ` webapp` , to access remote web applications.
772+ ` webapp` , to access remote web applications - `ssh`, to access
773+ the data via a public/private key pair.
772774 Other custom protocols might be added in the future.
773775 In case a single protocol is offered, there are three ways to
774776 specify this object :
@@ -848,6 +850,20 @@ To create a Share, the Sending Server SHOULD make a HTTP POST request
848850 - OPTIONAL sharedSecret (string)
849851 An optional secret to be used to access the remote
850852 web app, for example in the form of a bearer token.
853+ * Protocol details for `ssh` MAY contain:
854+ - OPTIONAL accessType (array of strings) - The type of access
855+ being granted to the remote resource. If omitted, it defaults to
856+ `['remote']`. A subset of : - `remote` signals the recipient that
857+ the resource is available for remote access, e.g. via sshfs.
858+ - ` datatx` signals the recipient to transfer the resource
859+ from the given URI via scp. The recipient MAY delegate a
860+ third-party service to execute the data transfer on their behalf.
861+ - REQUIRED uri (string)
862+ The endpoint to be used for ssh or scp access, in the form
863+ ` [email protected] :/path` , where authentication is expected 864+ to take place via public/private key : the Receiving Server MUST
865+ reply to such a Share Creation Notification sending their public
866+ key, for the Sender server to authorize access to the Resource.
851867
852868# # Response
853869
@@ -860,6 +876,9 @@ A 201 response status means the Share Creation Notification Request was
860876successful. In this case, the response body MUST contain a JSON
861877document representing an object with the following string fields :
862878 - REQUIRED : ` recipientDisplayName` - the Recipient's display name.
879+ - OPTIONAL : ` recipientPublicKey` - the Recipient's public key.
880+ This property MUST be returned when the protocol of the incoming
881+ share was `ssh`.
863882A 400 response status means some parameters were invalid or missing.
864883A 401 response status means the Sender cannot be authenticated as
865884a trusted service.
0 commit comments