Skip to content

Commit 2c9f0b5

Browse files
authored
OCM: implement new webapp protocol (#274)
* Add a hidden optional flag for OCM received shares Symmetric to ReceivedShare.hidden * OCM: implement new webapp protocol * Align OCM webdav protocol to use resource permissions
1 parent b7e326e commit 2c9f0b5

1 file changed

Lines changed: 52 additions & 29 deletions

File tree

cs3/sharing/ocm/v1beta1/resources.proto

Lines changed: 52 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ message Share {
9090
cs3.sharing.ocm.v1beta1.RecipientType recipient_type = 15;
9191
}
9292

93-
// The permissions for a share.
93+
// The permissions for an OCM share.
94+
// Deprecated: reshare is redundant with grant permissions.
9495
message SharePermissions {
9596
storage.provider.v1beta1.ResourcePermissions permissions = 1;
9697
bool reshare = 2;
@@ -168,6 +169,9 @@ message ReceivedShare {
168169
// Destination path of the share, in case the shared resource type is EMBEDDED
169170
// or the access type is DATATX.
170171
string destination = 18;
172+
// OPTIONAL.
173+
// Flag to hide the share, defaults to false.
174+
bool hidden = 19;
171175
}
172176

173177
// The state of the share.
@@ -238,17 +242,6 @@ message ShareReference {
238242
}
239243
}
240244

241-
// A share grant specifies the share permissions
242-
// for a grantee.
243-
message ShareGrant {
244-
// REQUIRED.
245-
// The grantee of the grant.
246-
storage.provider.v1beta1.Grantee grantee = 1;
247-
// REQUIRED.
248-
// The share permissions for the grant.
249-
SharePermissions permissions = 2;
250-
}
251-
252245
// The protocol which is used to get access to a remote OCM resource.
253246
message Protocol {
254247
// REQUIRED.
@@ -267,36 +260,57 @@ message Protocol {
267260
}
268261
}
269262

270-
// Defines the options for the WebDAV protocol.
263+
// Defines the options for the WebDAV protocol, mapping
264+
// to the `webdav` protocol in the OCM specifications.
271265
message WebDAVProtocol {
272266
// REQUIRED.
273267
// Secret used to access the resource.
274268
string shared_secret = 1;
269+
// Permissions of the shared resource. Deprecated: use share_permissions instead.
270+
cs3.sharing.ocm.v1beta1.SharePermissions permissions = 2 [deprecated = true];
275271
// REQUIRED.
276-
// Permissions of the shared resource.
277-
cs3.sharing.ocm.v1beta1.SharePermissions permissions = 2;
278-
// REQUIRED.
279-
// Path-only URI used to access the resource.
272+
// URI used to access the resource.
280273
string uri = 3;
281274
// OPTIONAL.
282275
// The requirements for the share.
283276
repeated string requirements = 4;
284277
// OPTIONAL.
285278
// Access types for the share, e.g. remote or data transfer. Defaults to remote.
286279
repeated cs3.sharing.ocm.v1beta1.AccessType access_types = 5;
280+
// REQUIRED.
281+
// Permissions of the shared resource.
282+
storage.provider.v1beta1.ResourcePermissions share_permissions = 6;
287283
}
288284

289-
// Defines the options for the Webapp protocol.
285+
// Defines the options for the Webapp protocol, mapping
286+
// to the `webapp` protocol in the OCM specifications.
290287
message WebappProtocol {
291288
// REQUIRED.
292-
// Path-only URI to open the resource with a remote app.
293-
string uri = 1;
289+
// Secret used to access the resource.
290+
string shared_secret = 1;
294291
// REQUIRED.
295-
// View mode for the remote app.
296-
cs3.app.provider.v1beta1.ViewMode view_mode = 2;
292+
// Permissions of the shared resource.
293+
storage.provider.v1beta1.ResourcePermissions share_permissions = 2;
294+
// REQUIRED.
295+
// URI to open the resource with the remote app.
296+
string uri = 3;
297+
// REQUIRED.
298+
// The requirements for the share.
299+
repeated string requirements = 4;
300+
// REQUIRED.
301+
// The targets that can be used to display the remote app.
302+
repeated string targets = 5;
297303
// OPTIONAL.
298-
// Secret used to access the resource.
299-
string shared_secret = 3;
304+
// A descriptive name of the remote app in the user interface.
305+
string app_name = 6;
306+
// OPTIONAL.
307+
// A hint in the form of a media (MIME) type of the icon
308+
// representing the remote app in the user interface.
309+
string app_icon_hint = 7;
310+
// OPTIONAL.
311+
// An array of media (MIME) types that the remote application
312+
// can handle.
313+
repeated string media_types = 8;
300314
}
301315

302316
// Defines the options for the Embedded protocol.
@@ -350,7 +364,8 @@ enum AccessType {
350364
ACCESS_TYPE_DATATX = 2;
351365
}
352366

353-
// Defines how the remote OCM recipient accesses a local resource.
367+
// Defines how a remote OCM recipient accesses a local resource when
368+
// serving a share. This is a subset of the OCM protocol specifications.
354369
message AccessMethod {
355370
// REQUIRED.
356371
// One of the access method MUST be specified.
@@ -365,7 +380,8 @@ message AccessMethod {
365380
}
366381
}
367382

368-
// Defines the options for the WebDAV access method.
383+
// Defines the options for the WebDAV access method, representing
384+
// how a remote user accesses a local resource via the `webdav` OCM protocol.
369385
message WebDAVAccessMethod {
370386
// REQUIRED.
371387
// The permissions for the share.
@@ -378,9 +394,16 @@ message WebDAVAccessMethod {
378394
repeated cs3.sharing.ocm.v1beta1.AccessType access_types = 3;
379395
}
380396

381-
// Defines the options for the Webapp access method.
397+
// Defines the options for the Webapp access method, representing
398+
// how a remote user accesses a local app via the `webapp` OCM protocol.
382399
message WebappAccessMethod {
383400
// REQUIRED.
384-
// The view mode for the share.
385-
cs3.app.provider.v1beta1.ViewMode view_mode = 1;
401+
// The permissions for the share.
402+
storage.provider.v1beta1.ResourcePermissions permissions = 1;
403+
// REQUIRED.
404+
// The requirements for the share.
405+
repeated string requirements = 2;
406+
// OPTIONAL.
407+
// A descriptive name of the app in the remote user interface.
408+
string app_name = 3;
386409
}

0 commit comments

Comments
 (0)