Skip to content
Snippets Groups Projects
Commit ab77ca53 authored by Pavel Antonov's avatar Pavel Antonov :asterisk:
Browse files

Events (WIP)

parent 78fe28a1
No related branches found
No related tags found
1 merge request!65Draft: Добавлена спецификация на события в системе
This commit is part of merge request !65. Comments created here will be created in the context of that merge request.
...@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment