Get desktop application:
View/edit binary Protocol Buffers messages
Gateway API The Gateway API is the only API exposed directly to end-clients. It is a facade API that all clients should connect to. Other APIS like the StorageProviderAPI are internal APIS. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119. The following are global requirements that apply to all methods: Any method MUST return CODE_OK on a succesful operation. Any method MAY return NOT_IMPLEMENTED. Any method MAY return INTERNAL. Any method MAY return UNKNOWN. Any method MAY return UNAUTHENTICATED.
*****************************************************************/ ************************ AUTH ******** **************************/ *****************************************************************/
Completes an invitation acceptance.
Registers a new app provider to the registry.
Attach a label to a resource for a user.
Authenticates a user.
OPTIONAL. Opaque information.
REQUIRED. The type of authentication to use.
OPTIONAL. The id of the client. For basic authentication with username and password both client_id and client_secret are expected to be filled. However, for example, for OIDC only a token is necessary.
OPTIONAL. The secret of the client.
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The access token.
REQUIRED. The authenticated user.
Requests to cancel a transfer.
CheckPermission checks if a user or group has a certain permission.
Creates a new resource of type container. MUST return CODE_FAILED_PRECONDITION if the container cannot be created at the specified reference.
Creates the home directory for a user.
Creates a storage space.
Creates a symlink to another resource.
Requests creation of a transfer.
Deletes a resource. If a resource specifies the non-empty container (directory, ...), then the entire directory is deleted recursively. If a resource specifies a reference or symlink type, only the reference is removed (not the target). MUST return CODE_NOT_FOUND if the reference does not exist. MUST return CODE_TOO_EARLY if some are not finished job over resource is still in process.
Delete a previously accepted remote user, that is unfriend that user.
*****************************************************************/ ******************** OCM PROVIDER AUTHORIZER ********************/ *****************************************************************/
Deletes a storage space.
Finds users who accepted invite tokens by their attributes.
TODO(labkode): to define the filters that make more sense. Finds groups whose names match the specified filter.
*****************************************************************/ ************************ AUTH REGISTRY **************************/ *****************************************************************/
Finds users by any attribute of the user. TODO(labkode): to define the filters that make more sense.
Forwards a received invite to the sync'n'share system provider.
GenerateAppPassword creates a password with specified scope to be used by third-party applications.
Generates a new token for the user with a validity of 24 hours.
Retrieves details about a remote user who has accepted an invite to share.
GetAppPassword retrieves the password information by the combination of username and password.
*****************************************************************/ ************************ STORAGE PROVIDER ***********************/ *****************************************************************/
Returns the app providers that are capable of handling this resource info. MUST return CODE_NOT_FOUND if no providers are available.
Returns the default app provider which serves a specified mime type.
Gets the information about a group by the group id.
Gets the information about a group based on a specified claim.
Returns the home path for the given authenticated user. When a user has access to multiple storage providers, one of them is the home.
*****************************************************************/ ************************ OCM INVITE MANAGER *********************/ *****************************************************************/
Get the information of the provider identified by a specific domain. MUST return CODE_NOT_FOUND if the sync'n'share system provider does not exist.
Returns the value associated with the requested key.
Gets the lock metadata of a storage resource. MUST return CODE_NOT_FOUND if the reference does not exist or is not locked. The caller MUST have read permissions on the resource.
Gets the members of a group.
Returns the path reference for the provided resource id reference. MUST return CODE_NOT_FOUND if the reference does not exist
Returns the quota available under the provided reference. MUST return CODE_NOT_FOUND if the reference does not exist MUST return CODE_RESOURCE_EXHAUSTED on exceeded quota limits.
OPTIONAL. Opaque information.
REQUIRED. The reference to which the action should be performed.
Gets the information about a tenant by the tenant id.
Gets the information about a tenant based on a specified claim.
Gets the groups of a user. *****************************************************************/ ************************ GROUP PROVIDER **************************/ *****************************************************************/
Requests a transfer status.
Gets the information about a user by the user id.
Gets the information about a user based on a specified claim.
Gets the groups of a user.
Tells if the group has a certain member.
Initiates the download of a file using an out-of-band data transfer mechanism.
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The protocols through which data can be downloaded.
Initiates the upload of a file using an out-of-band data transfer mechanism.
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The protocols through which data can be uploaded.
InvalidateAppPassword invalidates a generated password.
Check if a given system provider is registered in the mesh or not. MUST return CODE_UNAUTHENTICATED if the system is not registered
Get the information of all the providers registered in the mesh.
*****************************************************************/ **************************** OCM INCOMING ***********************/ *****************************************************************/
ListAppPasswords lists the application passwords created by a user.
Returns a list of the available app providers known by this registry.
Returns a list of the available auth providers known by this registry.
************************ STORAGE REGISTRY ** ********************/ *****************************************************************/
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The list of auth types. TODO(labkode): maybe add description?
Returns a list of resource information for the provided reference. MUST return CODE_NOT_FOUND if the reference does not exists.
Returns a stream of resource informations for the provided reference. MUST return CODE_NOT_FOUND if the reference does not exists.
Returns a list of the versions for a resource of type file at the provided reference. MUST return CODE_NOT_FOUND if the reference does not exist. MUST return CODE_OK and MUST return an empty list if no versions are available. TODO: What code if resource not of type file?
Lists the valid tokens generated by the user.
List the unique labels that a user has attached to resources
Returns a list of recycle items for this storage provider. MUST return CODE_OK and MUST return an empty list if no recycle items are available.
Returns a stream of recycle items for this storage provider.
List the resources which have a given label attached for a given user
Lists storage spaces.
Returns a list of the supported mime types along with the apps which they can opened with.
Requests a list of transfers received by the authenticated principle.
Moves a resource from one reference to another. MUST return CODE_NOT_FOUND if any of the references do not exist. MUST return CODE_FAILED_PRECONDITION if the source reference. MUST return CODE_TOO_EARLY if some are not finished job over resource is still in process. cannot be moved to the destination reference.
Returns the App URL and all necessary info to open a resource in an online editor. MUST return CODE_NOT_FOUND if the resource does not exist.
*****************************************************************/ ************************ USER SHARE PROVIDER ********************/ *****************************************************************/
OPTIONAL. Opaque information.
REQUIRED. The resource reference. If a path is given, it will be resolved via Stat() to a ResourceInfo in case a call to the WOPI server is to be issued (cf. the provider grpc message)
OPTIONAL. A reference to the application to be used to open the resource, should the default inferred from the resource's mimetype be overridden by user's choice. If the targeted resource is a directory, this parameter is required and in its absence the implementation MUST return INVALID_ARGUMENT.
OPTIONAL. A lock_id: should the reference be locked and the lock type be LOCK_TYPE_EXCL, the stored lock_id MUST be equal to the given value.
Permanently removes a recycle item from the recycle. This operation is irrevocable. MUST return CODE_NOT_FOUND if the recycle item id does not exist.
Refreshes the lock metadata of a storage resource. MUST return CODE_NOT_FOUND if the reference does not exist. MUST return CODE_FAILED_PRECONDITION if the reference is not locked or if the caller does not hold the lock. The caller MUST have write permissions on the resource.
Removes a label from a resource for a user.
Restores a file version for the provided reference. MUST return CODE_NOT_FOUND if the reference does not exist. MUST return CODE_NOT_FOUND if the version does not exist.
Restores a recycle item from the recycle. MUST return CODE_NOT_FOUND if the recycle item id does not exist. MUST return CODE_FAILED_PRECONDITION if the restore_path is non-empty and the recycle item cannot be restored to the restore_path.
Requests retrying a transfer.
*****************************************************************/ ************************** Permissions **************************/ *****************************************************************/
Sets arbitrary metadata into a storage resource. Arbitrary metadata is returned in a cs3.storage.provider.v1beta1.ResourceInfo.
Sets the default app provider for a specified mime type.
*****************************************************************/ ************************ USER PROVIDER **************************/ *****************************************************************/
Set the immutable attribute on a resource. Files become frozen (irreversible), containers become protected (reversible). See cs3org/cs3apis#272 for the specification.
Maps the key-value pair.
Locks a storage resource. MUST return CODE_NOT_FOUND if the reference does not exist. MUST return CODE_FAILED_PRECONDITION if the reference is already locked. In addition, the implementation MUST ensure atomicity when multiple users concurrently attempt to set a lock. The caller MUST have write permissions on the resource.
Returns the resource information at the provided reference. MUST return CODE_NOT_FOUND if the reference does not exist.
Creates a new resource of type file. MUST return CODE_FAILED_PRECONDITION if the file cannot be created at the specified reference.
Unlocks a storage resource. MUST return CODE_NOT_FOUND if the reference does not exist. MUST return CODE_FAILED_PRECONDITION if the reference is not locked or if the caller does not hold the lock. The caller MUST have write permissions on the resource.
Unsets arbitrary metdata into a storage resource. Arbitrary metadata is returned in a cs3.storage.provider.v1beta1.ResourceInfo.
Remove the immutable attribute from a resource. Only applicable to containers (protected). Frozen files cannot be unfrozen.
*****************************************************************/ ************************ APP PROVIDER ********************/ *****************************************************************/
Updates a storage space.
WhoAmI returns the information for a user.
*****************************************************************/ ********************** APPLICATIONS AUTH ************************/ *****************************************************************/
OPTIONAL. Opaque information.
REQUIRED. The access token.
REQUIRED. The response status.
OPTIONAL. Opaque information.
REQUIRED. The user information.
A file download protocol object stores information about downloading resources using a specific protocol.
Used in:
OPTIONAL. Opaque information.
REQUIRED. The protocol to be followed.
REQUIRED. The endpoint where to download the data. The value MUST be a Uniform Resource Identifier (URI) as specified in RFC 3986.
OPTIONAL. A token that MUST be validated by the data gateway for the download. Only makes sense for downloads passing through the data gateway.
A file upload protocol object stores information about uploading resources using a specific protocol.
Used in:
OPTIONAL. Opaque information.
REQUIRED. The protocol to be followed.
REQUIRED. The endpoint where to upload the data. The value MUST be a Uniform Resource Identifier (URI) as specified in RFC 3986.
REQUIRED. List of available checksums the client can use when sending the file.
OPTIONAL. A token that MUST be validated by the data gateway for the upload. Only makes sense for uploads passing through the data gateway.
OCMShareResourceInfo includes the sharing information and the storage-related information about an OCM share resource.
Used in:
OPTIONAL. Opaque information.
REQUIRED. The underlying share as returned by the collaboration service.
REQUIRED. The corresponding resource information as returned by the storage provider.
REQUIRED. View mode.
Used in:
The resource can be opened but not downloaded.
The resource can be downloaded.
The resource can be downloaded and updated. The underlying application MUST be a fully capable editor to support this mode.
The resource can be downloaded and updated, but must be shown in preview mode. If the underlying application does not support a preview mode, or if in a view-only mode users are not allowed to switch to edit mode, then this mode MUST fall back to READ_WRITE.
The resource can be viewed in embedded mode. Editing is disabled.
PublicShareResourceInfo includes the sharing information and the storage-related information about a public share resource.
Used in:
OPTIONAL. Opaque information.
REQUIRED. The underlying share as returned by the collaboration service.
REQUIRED. The corresponding resource information as returned by the storage provider.
ReceivedShareResourceInfo includes the sharing information and the storage-related information about a received share resource.
Used in:
OPTIONAL. Opaque information.
REQUIRED. The underlying share as returned by the collaboration service.
REQUIRED. The corresponding resource information as returned by the storage provider.
ShareResourceInfo includes the sharing information and the storage-related information about a share resource.
Used in:
OPTIONAL. Opaque information.
REQUIRED. The underlying share as returned by the collaboration service.
REQUIRED. The corresponding resource information as returned by the storage provider.