Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • perxis/perxis-proto
1 result
Show changes
......@@ -3,7 +3,7 @@ syntax = "proto3";
import "google/protobuf/empty.proto";
import "common/common.proto";
option go_package = "git.perx.ru/perxis/perxis-go/members;members";
option go_package = "git.perx.ru/perxis/perxis-go/proto/members;members";
package account.members;
......
......@@ -3,7 +3,7 @@ syntax = "proto3";
import "google/protobuf/empty.proto";
import "common/common.proto";
option go_package = "git.perx.ru/perxis/perxis-go/organizations;organizations";
option go_package = "git.perx.ru/perxis/perxis-go/proto/organizations;organizations";
package account.organizations;
......
......@@ -2,7 +2,7 @@ syntax = "proto3";
import "items/items.proto";
option go_package = "git.perx.ru/perxis/perxis-go/references;references";
option go_package = "git.perx.ru/perxis/perxis-go/proto/references;references";
package content.references;
......@@ -24,8 +24,37 @@ message GetResponse {
repeated Reference notfound = 2;
}
// References принимает список ссылок на записи и возвращает два списка:
// список найденных записей и не найденных ссылок
// PublishRequest запрос на публикацию записей по ссылкам
message PublishRequest {
string space_id = 1; // Пространство публикации
string env_id = 2; // Окружение публикации
repeated Reference references = 3; // Список ссылок на записи для публикации
bool recursive = 4; // Рекурсивно публиковать все ссылки на найденные записи
bool force = 5; // Принудительно публиковать записи, даже если они содержат не опубликованные ссылки
}
// PublishResponse ответ на запрос публикации записей
message PublishResponse {
repeated Reference published = 2; // Список опубликованных записей
repeated Reference notfound = 3; // Список не найденных записей
repeated Reference unpublished = 4; // Список не опубликованных записей, требующих публикации
}
// References сервис предназначен для работы со ссылками на записи
service References {
// Get возвращает список записей по ссылкам
rpc Get(GetRequest) returns(GetResponse) {}
// Publish принимает список ссылок на записи и публикует их с учетом вложенных ссылок.
//
// - В случае если флаг `recursive` установлен в true, то будут рекурсивно опубликованы
// все записи на которые ссылаются найденные записи.
// - Если флаг `recursive` установлен в false, то будут опубликованы записи
// только из списка `references` в случае если они не содержат не опубликованных
// ссылок. В противном случае возвращается список не опубликованных записей `unpublished`
// которые требуют публикации. Список `published` при этом будет пустым. В случае если флаг
// `force` установлен в true, то записи будут опубликованы даже если они содержат
// не опубликованные ссылки.
rpc Publish(PublishRequest) returns(PublishResponse) {}
}
......@@ -3,7 +3,7 @@ syntax = "proto3";
import "google/protobuf/empty.proto";
import "common/common.proto";
option go_package = "git.perx.ru/perxis/perxis-go/roles;roles";
option go_package = "git.perx.ru/perxis/perxis-go/proto/roles;roles";
package content.roles;
......
syntax = "proto3";
option go_package = "git.perx.ru/perxis/perxis-go/spaces;spaces";
option go_package = "git.perx.ru/perxis/perxis-go/proto/spaces;spaces";
package content.spaces;
import "google/protobuf/empty.proto";
import "google/protobuf/timestamp.proto";
message Space {
string id = 1;
string org_id = 2;
string name = 3;
string description = 4;
// Deprecated
State state = 5;
string transfer_to_org = 6; // идентификатор организации, в которую запрошен перенос пространства
Config config = 10;
StateInfo state_info = 11;
}
enum State {
......@@ -26,7 +32,15 @@ enum State {
ERROR = 7;
}
message StateInfo {
State state = 1;
string info = 2;
int32 db_version = 3;
google.protobuf.Timestamp time = 4;
}
message Config {
// Deprecated
repeated string features = 1;
}
......@@ -67,6 +81,28 @@ message DeleteRequest {
string space_id = 1;
}
message TransferRequest {
string space_id = 1; // Идентификатор перемещаемого пространства
string transfer_to_org = 2; // Идентификатор организации, в которую пространство должно быть перемещено
}
message AbortTransferRequest {
string space_id = 1; // Идентификатор перемещаемого пространства
}
message ListTransfersRequest {
string org_id = 1;
}
message ListTransfersResponse {
repeated Space spaces = 1;
}
message MoveRequest {
string space_id = 1; // Идентификатор перемещаемого пространства
string org_id = 2; // Идентификатор организации, в которую пространство должно быть перемещено. Обязателен для заполнения только в случае запросов с системным уровнем доступа, в остальных случаях опционален
}
service Spaces {
rpc Create(CreateRequest) returns(CreateResponse) {}
rpc Get(GetRequest) returns(GetResponse) {}
......@@ -74,4 +110,25 @@ service Spaces {
rpc Update(UpdateRequest) returns(google.protobuf.Empty) {}
rpc UpdateConfig(UpdateConfigRequest) returns(google.protobuf.Empty) {}
rpc Delete(DeleteRequest) returns(google.protobuf.Empty) {}
// Transfer устанавливает для пространства значение поля RequestedMoveTo. После этого пространство
// будет отображаться в списке входящих запросов на перемещение в организации `orgID` (запрос ListIncoming)
// С пространством можно продолжать работу в текущей организации, пока запрос на перемещение не будет
// принят в целевой организации
// Перенос может быть инициирован только владельцем организации, которой принадлежит пространство
rpc Transfer(TransferRequest) returns(google.protobuf.Empty) {}
// AbortTransfer - отменить перемещение пространства в другую организацию. Может быть вызван как
// владельцем пространства-инициатора, там и владельцем принимающего пространства
rpc AbortTransfer(AbortTransferRequest) returns(google.protobuf.Empty) {}
// ListTransfers возвращает список пространств, перемещение которых было запрошено в текущую организацию
rpc ListTransfers(ListTransfersRequest) returns(ListTransfersResponse) {}
// Move - перенести пространство в организацию, установленную в Space.TransferToOrg. Пространство переносится со
// всеми входящими в него данными: ролями, участниками, контентом, пр. и более не будет доступно в
// исходной организации.
// В случае, если запрос осуществляется с системным уровнем доступа и передан параметр `org_id`, то перенос будет
// осуществлен вне зависимости от того, был он инициирован через метод `Transfer` или нет
rpc Move(MoveRequest) returns(google.protobuf.Empty) {}
}
......@@ -4,7 +4,7 @@ import "google/protobuf/empty.proto";
import "google/protobuf/wrappers.proto";
import "common/common.proto";
option go_package = "git.perx.ru/perxis/perxis-go/users;users";
option go_package = "git.perx.ru/perxis/perxis-go/proto/users;users";
package account.users;
......
......@@ -3,7 +3,7 @@ syntax = "proto3";
import "google/protobuf/empty.proto";
import "common/common.proto";
option go_package = "git.perx.ru/perxis/perxis-go/versions/account;account";
option go_package = "git.perx.ru/perxis/perxis-go/proto/versions/account;account";
package account;
......
......@@ -3,7 +3,7 @@ syntax = "proto3";
import "google/protobuf/empty.proto";
import "common/common.proto";
option go_package = "git.perx.ru/perxis/perxis-go/versions/content;content";
option go_package = "git.perx.ru/perxis/perxis-go/proto/versions/content;content";
package content;
......