codemp/proto/workspace_service.proto

53 lines
1.3 KiB
Protocol Buffer
Raw Normal View History

2023-12-18 23:36:15 +01:00
// Workspace effimero: sta in /tmp o proprio in memoria
// Workspace e` autenticato: come si decide mentre si rifa il server
// Workspace ha id univoco (stringa), usato per connettercisi
// Workspace implementera` access control:
// * accedere al workspace
// * i singoli buffer
// - i metadati maybe????
// Workspace offre le seguenti features:
// * listare i buffer DONE
// * listare gli user connessi DONE
// * creare buffers DONE REPLACE THE ONE ON buffer.proto
// * NO ATTACH: responsabilita` del buffer service
// * contiene metadata dei buffers:
// * path
// * data creazione
// Buffer id NON E` il path DONE
// BufferService NON ha metadata:
// Workspace tiene traccia di utenti attached (nel futuro) DONE
syntax = "proto2";
package workspace_service;
import "user.proto";
import "files.proto";
2024-01-01 23:34:59 +01:00
import "workspace.proto";
2023-12-18 23:36:15 +01:00
service Workspace {
2024-01-01 23:34:59 +01:00
rpc Create (workspace.BufferPayload) returns (workspace.Empty);
2023-12-18 23:36:15 +01:00
2024-01-01 23:34:59 +01:00
rpc Attach (workspace.AttachRequest) returns (workspace.Token);
2023-12-18 23:36:15 +01:00
2024-01-01 23:34:59 +01:00
rpc ListBuffers (workspace.BufferListRequest) returns (files.BufferTree);
2023-12-18 23:36:15 +01:00
2024-01-01 23:34:59 +01:00
rpc ListUsers (workspace.UserListRequest) returns (workspace.UserList);
2023-12-18 23:36:15 +01:00
2024-01-01 23:34:59 +01:00
rpc ListBufferUsers (workspace.Empty) returns (workspace.Empty);
2023-12-18 23:36:15 +01:00
2024-01-01 23:34:59 +01:00
rpc Join (workspace.JoinRequest) returns (workspace.Token);
2023-12-18 23:36:15 +01:00
2024-01-01 23:34:59 +01:00
rpc Delete (workspace.BufferPayload) returns (workspace.Empty); //deletes buffer
2023-12-18 23:36:15 +01:00
}