Skip to content
Snippets Groups Projects
Select Git revision
  • 278f919cda5b9d9aac548f1714213eaf52c28d7f
  • master default protected
  • feature/PRXS-3383-CollectionsRankSort
  • feature/3149-LocaleCodeAsID
  • refactor/PRXS-3053-RefactorFiles
  • feature/3146-UpdateItemStorageInterface
  • feature/3180-RemoveOldHugo
  • feature/3264-FixExtracTranslationsArrays
  • feature/3274-ObjectIndexesFixes
  • feature/2931-AllowPartialDecode
  • feature/3055-ItemsRestAPI
  • feature/3082-gitlab-triage
  • feature/3055-LogsRestAPI
  • feature/2985-add-preset-settings
  • feature/2929-MultiInvitationFix
  • feature/2929-MultiInvitation
  • docs/2889-HugoModules
  • docs/2954-CheckResource
  • docs/3012-SplitBuild
  • docs/3024-PerxisWebStatic
  • feature/2911-GetArchive
  • v0.27.0
  • v0.21.0
  • v0.19.0
  • v0.20.0
25 results

log_service.proto

Blame
  • user avatar
    278f919c
    History
    log_service.proto 3.66 KiB
    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 FindOptions {
      // Сортировка результатов
      repeated string sort = 1;
    
      reserved 2;
    
      reserved 3;
    
      // Ограничение количества результатов
      int32 limit = 4;
    
      // Ограничение результатов по времени начиная с этим временем (pagination)
      google.protobuf.Timestamp after = 5;
    
      // Ограничение результатов по времени заканчивая этим временем (pagination)
      google.protobuf.Timestamp before = 6;
    }
    
    
    // Запрос на поиск логов
    message FindRequest {
      // Фильтр для поиска
      Filter filter = 2;
    
      // Опции поиска
      FindOptions options = 3;
    }
    
    // Результат поиска
    message FindResult {
      // Найденные записи лога
      repeated LogEntry entries = 1;
    
      // Использовавшийся для поиска фильтр
      // Для
      Filter filter = 2;
    
      // Использовавшиеся для поиска опции
      FindOptions options = 3;
    
      // Общее количество найденных записей
      uint32 total = 4; // DEPRECATED
    
      // Запрос для получения следующей страницы
      FindRequest next = 5;
    
      // Запрос для получения предыдущей страницы
      FindRequest prev = 6;
    }
    
    // Ответ сервера на запрос поиска
    message FindResponse {
      oneof response {
        // Результаты поиска
        FindResult result = 1;
    
        // Информация об ошибке, если таковая имеется
        common.Error error = 2;
      }
    }
    
    // Запрос на удаление логов
    message DeleteRequest {
      // Фильтры для удаления
      Filter filter = 2;
    }
    
    // Ответ сервера на запрос удаления
    message DeleteResponse {
      // Информация об ошибке, если таковая имеется
      common.Error error = 1;
    }