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
Commits on Source (31)
......@@ -11,8 +11,13 @@ package content.collections;
message Access {
repeated common.Action actions = 1;
repeated string hidden_fields = 5;
// Deprecated
repeated string readonly_fields = 6;
repeated string writeonly_fields = 7;
repeated string deny_read_fields = 8;
repeated string deny_write_fields = 9;
}
message Collection {
......
......@@ -14,10 +14,13 @@ message Filter {
message FindOptions {
repeated string sort = 1;
int32 page_num = 2;
int32 page_size = 3;
int32 page_num = 2; // Deprecated
int32 page_size = 3; // Deprecated
repeated string fields = 4;
bool exclude_fields = 5;
int32 offset = 6;
int32 limit = 7;
}
......@@ -40,10 +43,15 @@ message Rule {
repeated Action actions = 2;
Access access = 3;
repeated string hidden_fields = 5;
// Deprecated
repeated string readonly_fields = 6;
repeated string writeonly_fields = 7;
string read_filter = 8;
string write_filter = 9;
repeated string deny_read_fields = 10;
repeated string deny_write_fields = 11;
}
message Collaborator {
......
syntax = "proto3";
package logs;
import "google/protobuf/timestamp.proto";
import "google/protobuf/any.proto";
import "common/error.proto";
option go_package = "git.perx.ru/perxis/perxis-go/proto/logs;logs";
// LogLevel задает уровень журналирования.
enum LogLevel {
// INFO - обозначает сообщения с нормальным, операционным уровнем журналирования.
INFO = 0;
// WARNING - обозначает сообщения, которые содержат потенциально вредные ситуации.
WARNING = 1;
// ERROR - обозначает другие ошибки в работе.
ERROR = 2;
// CRITICAL - обозначает серьезные ошибки, из-за которых программа может не выполнять некоторые функции.
CRITICAL = 3;
// FATAL - обозначает очень серьезные ошибки, которые могут привести к остановке приложения.
FATAL = 4;
}
// LogEntry представляет собой структуру данных для хранения информации о журнале.
message LogEntry {
// id является уникальным идентификатором каждой записи в журнале.
string id = 1;
// timestamp указывает на временную метку, указывающую когда было создано данное сообщение.
google.protobuf.Timestamp timestamp = 2;
// level это поле, обозначающее уровень приоритета сообщения в логе.
LogLevel level = 3;
// message это основное сообщение, которое требуется записать в лог.
string message = 4;
// category указывает на категорию события.
// Примеры:
// -
string category = 5;
// component обозначает компонент системы, где произошло данное событие.
// Примеры:
// - Items.Service
// - Items.API
// - Users.Service
// - Users.API
// - Janitor.Service
// - Tasks.Worker
string component = 6;
// action описывает действие, которое было произведено. Это поле может принимать разные значения в зависимости от сервиса.
// Примеры:
// - item.create
// - item.update
// - organization.create
// - action.run
// - reference.create
string event = 7;
// object это идентификатор объекта связанного с событием
// Идентификатор объекта должен быть в формате GlobalID:
// <контекст>/<тип объекта>/<идентификатор объекта>
// где:
// - <контекст> - представляет собой иднетификатор родительского объекта, если таковой имеется
// - <тип объекта> - представляет собой тип объекта, например:
// spaces, envs, cols, items, revs, fields, clients, roles, orgs, users
// - <идентификатор объекта> - представляет собой идентификатор объекта
//
// Примеры:
// /spaces/<space_id> - пространство
// /spaces/<space_id>/envs/<env_id> - окружение
// /spaces/<space_id>/envs/<env_id>/cols/<collection_id> - коллекция
// /spaces/<space_id>/cols/<collection_id> - коллекция в окружении "master"
// /spaces/<space_id>/envs/<env_id>/schema/<collection_id> - схема коллекции
// /spaces/<space_id>/envs/<env_id>/cols/<collection_id>/items/<item_id> - элемент коллекции
// /spaces/<space_id>/cols/<collection_id>/items/<item_id> - элемент коллекции в окружении "master"
// /spaces/<space_id>/envs/<env_id>/cols/<collection_id>/items/<item_id>/fields/<field_name> - поле элемента коллекции
// /spaces/<space_id>/envs/<env_id>/cols/<collection_id>/items/<item_id>/revs/<rev_id> - ревизия элемента коллекции
// /spaces/<space_id>/clients/<client_id> - клиент
// /spaces/<space_id>/roles/<role_id> - роль
// /orgs/<org_id> - организация
// /users/<user_id> - пользователь
// /services/<service_id> - сервис
string object_id = 8;
// caller содержит идентификатор сущности вызвавшей событиe, аналогично полю object
//
// Примеры:
// /users/<user_id> - пользователь
// /spaces/<space_id>/clients/<client_id> - клиент
// /services/<service_id> - сервис
string caller_id = 9;
// attr содержит дополнительные связанные с событием атрибуты в формате Any
// позволяет добавить дополнительные данные в событие
google.protobuf.Any attr = 10;
// tags содержит теги связанные с событием, на усмотрение сервиса
repeated string tags = 11;
}
\ No newline at end of file
syntax = "proto3";
package logs;
import "common/common.proto";
import "common/error.proto";
import "logs/log.proto";
import "google/protobuf/timestamp.proto";
option go_package = "git.perx.ru/perxis/perxis-go/proto/logs;logs";
// Сервис для записи активности в системе
// Позволяет всем компонентам системы записывать логи в единое хранилище и получать их оттуда
service LogsService {
// Метод для записи логов
rpc Log(LogRequest) returns (LogResponse) {}
// Метод для поиска логов по заданным параметрам
rpc Find(FindRequest) returns (FindResponse) {}
// Метод для удаления логов по заданным параметрам
rpc Delete(DeleteRequest) returns (DeleteResponse) {}
}
// Запрос для лога
message LogRequest {
// Запись лога
repeated LogEntry entries = 1;
}
// Ответ сервера на запрос лога
message LogResponse {
// Содержит информацию об ошибке, если таковая имеется
common.Error error = 1;
}
message Filter {
// Запрос на поиск логов
// Примеры:
// 1. `timestamp > '2019-01-01' AND timestamp < '2019-01-02'`
// 2. `timestamp > '2019-01-01' AND timestamp < '2019-01-02' AND level = 'error'`
// 3. `component = 'api' AND object_id = '123' AND object_type = 'item' AND space = 'spc1'`
// 4. `id in ['1', '2', '3']`
repeated string q = 3; // Список выражений для фильтрации
}
// Запрос на поиск логов
message FindRequest {
// Фильтры для поиска
Filter filter = 2;
// Опции поиска
common.FindOptions options = 3;
}
// Результат поиска
message FindResult {
// Найденные записи лога
repeated LogEntry entries = 1;
// Использовавшийся для поиска фильтр
// Для
Filter filter = 2;
// Использовавшиеся для поиска опции
common.FindOptions options = 3;
// Общее количество найденных записей
uint32 total = 4;
}
// Ответ сервера на запрос поиска
message FindResponse {
oneof response {
// Результаты поиска
FindResult result = 1;
// Информация об ошибке, если таковая имеется
common.Error error = 2;
}
}
// Запрос на удаление логов
message DeleteRequest {
// Фильтры для удаления
Filter filter = 2;
}
// Ответ сервера на запрос удаления
message DeleteResponse {
// Информация об ошибке, если таковая имеется
common.Error error = 1;
}
\ No newline at end of file
......@@ -5,18 +5,20 @@ 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 {
......@@ -30,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;
}
......