Skip to content
Snippets Groups Projects

Draft: Добавлена спецификация на события в системе

Open Alex Petraky requested to merge feature/2785-middleware into master
1 file
+ 135
23
Compare changes
  • Side-by-side
  • Inline
+ 135
23
@@ -5,6 +5,8 @@ package events;
@@ -5,6 +5,8 @@ package events;
option go_package = "git.perx.ru/perxis/perxis-go/proto/events";
option go_package = "git.perx.ru/perxis/perxis-go/proto/events";
import "google/protobuf/struct.proto";
import "google/protobuf/struct.proto";
 
import "google/protobuf/any.proto";
 
import "google/protobuf/api.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/timestamp.proto";
import "spaces/spaces.proto";
import "spaces/spaces.proto";
import "users/users.proto";
import "users/users.proto";
@@ -20,37 +22,147 @@ import "extensions/extension.proto";
@@ -20,37 +22,147 @@ import "extensions/extension.proto";
import "items/items.proto";
import "items/items.proto";
import "members/members.proto";
import "members/members.proto";
message EventMetadata {
}
// Event описывает все события передаваемые в системе
// Event описывает все события передаваемые в системе
message Event {
message Event {
// Идентификатор события
// Идентификатор события
string id = 1;
string id = 1;
// Время наступления события
// Время наступления события
google.protobuf.Timestamp time = 2;
google.protobuf.Timestamp time = 2;
 
// Сервис, инициировавший событие
 
string service = 3;
 
 
// Имя события
 
string name = 4;
 
 
// Тема события
 
string subject = 5;
 
// Идентификатор инициатора события
// Идентификатор инициатора события
string principal = 5;
string principal = 6;
EventMetadata metadata = 10;
// Теги события
repeated string tags = 7;
oneof event {
account.organizations.OrganizationEvent organization = 200;
// Идентификатор трассировки
account.users.UserEvent user = 250;
string traceId = 8;
account.members.MemberEvent member = 275;
content.spaces.SpaceEvent space = 300;
// Cодержимое события
content.environments.EnvironmentEvent environment = 400;
Message message = 10;
content.collections.CollectionEvent collection = 450;
content.items.ItemEvent item = 500;
// Метаданные события
content.roles.RoleEvent role = 550;
Metadata metadata = 100;
content.clients.ClientEvent client = 600;
}
content.locales.LocaleEvent locale = 700;
content.collaborators.CollaboratorEvent collaborator = 800;
message Metadata {}
files.FileEvent file = 900;
extensions.ExtensionEvent extension = 1000;
message Message {
 
oneof value {
 
Account.Organizations.Create org_create = 100;
 
Account.Organizations.Update org_update = 101;
 
Account.Organizations.Delete org_delete = 102;
 
 
Account.Users.Create user_create = 200;
 
Account.Users.Update user_update = 201;
 
Account.Users.Delete user_delete = 202;
 
 
Account.Members.Set member_set = 300;
 
Account.Members.Remove member_remove = 301;
 
 
Content.Spaces.Create space_create = 400;
 
Content.Spaces.Update space_update = 401;
 
Content.Spaces.Delete space_delete = 402;
 
Content.Spaces.Move space_move = 403;
 
Content.Spaces.StateChange space_state_change = 404;
 
 
// account.organizations.OrganizationEvent organization = 200;
 
// account.users.UserEvent user = 250;
 
// account.members.MemberEvent member = 275;
 
// content.spaces.SpaceEvent space = 300;
 
// content.environments.EnvironmentEvent environment = 400;
 
// content.collections.CollectionEvent collection = 450;
 
// content.items.ItemEvent item = 500;
 
// content.roles.RoleEvent role = 550;
 
// content.clients.ClientEvent client = 600;
 
// content.locales.LocaleEvent locale = 700;
 
// content.collaborators.CollaboratorEvent collaborator = 800;
 
// files.FileEvent file = 900;
 
// extensions.ExtensionEvent extension = 1000;
}
}
 
}
 
 
message Account {
 
message Organizations {
 
message Create {
 
string org_id = 1;
 
}
 
 
message Update {
 
string org_id = 1;
 
}
 
message Delete {
 
string org_id = 1;
 
}
 
}
 
 
message Users {
 
message Create {
 
string user_id = 1;
 
}
 
message Update {
 
string user_id = 1;
 
}
 
message Delete {
 
string user_id = 1;
 
}
 
}
 
 
message Members {
 
message Set{}
 
message Remove {}
 
 
string org_id = 1;
 
string user_id = 2;
 
string role_id = 3;
 
 
oneof value {
 
Set set = 100;
 
Remove remove = 101;
 
}
 
}
 
}
 
 
message Content {
 
 
message Spaces {
 
message Create {
 
string space_id = 1;
 
string org_id = 2;
 
}
 
 
message Update {
 
string space_id = 1;
 
string org_id = 2;
 
}
 
 
message Delete {
 
string space_id = 1;
 
string org_id = 2;
 
}
 
 
message Move {
 
string space_id = 1;
 
string org_id = 2;
 
string prev_org_id = 3;
 
}
 
 
message StateChange {
 
string space_id = 1;
 
string org_id = 2;
 
content.spaces.StateInfo state = 3;
 
content.spaces.StateInfo prev = 4;
 
}
 
}
 
}
}
 
\ No newline at end of file
Loading