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;
option go_package = "git.perx.ru/perxis/perxis-go/proto/events";
import "google/protobuf/struct.proto";
import "google/protobuf/any.proto";
import "google/protobuf/api.proto";
import "google/protobuf/timestamp.proto";
import "spaces/spaces.proto";
import "users/users.proto";
@@ -20,37 +22,147 @@ import "extensions/extension.proto";
import "items/items.proto";
import "members/members.proto";
message EventMetadata {
}
// Event описывает все события передаваемые в системе
message Event {
// Идентификатор события
string id = 1;
// Время наступления события
google.protobuf.Timestamp time = 2;
// Сервис, инициировавший событие
string service = 3;
// Имя события
string name = 4;
// Тема события
string subject = 5;
// Идентификатор инициатора события
string principal = 5;
EventMetadata metadata = 10;
oneof event {
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;
string principal = 6;
// Теги события
repeated string tags = 7;
// Идентификатор трассировки
string traceId = 8;
// Cодержимое события
Message message = 10;
// Метаданные события
Metadata metadata = 100;
}
message Metadata {}
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