Дерево страниц

Описание: Список событий, отсортированных по времени перехвата (от новых к старым).

Метод:  GET

Ресурс: event

Параметры:

  • filter - список фильтрации:
    • date[from] — дата начала в формате UNIX-timestamp (можно использовать отдельно от date[to])
    • date[to] — дата окончания в формате UNIX-timestamp (можно использовать отдельно от date[from])
    • insert_date[>] — дата вставки начала в формате UNIX-timestamp и через точку microtime, например filter[insert_date][>]=1234.123312 
    • insert_date[<] — дата вставки окончания в формате UNIX-timestamp и через точку microtime, например filter[insert_date][<]=1234.123312
    • insert_date[>=] — дата вставки начала в формате UNIX-timestamp и через точку microtime, например filter[insert_date][>=]=1234.123312 (включительно) (с версии API 1.1)
    • insert_date[<=] — дата вставки окончания в формате UNIX-timestamp и через точку microtime, например filter[insert_date][<=]=1234.123312 (включительно) (с версии API 1.1)
    • rule_group_type[] — группа правил (с версии API 1.1)
    • violation_level[] — уровень нарушения (с версии API 1.1)
    • verdict[] — вердикт (с версии API 1.1)
    • object_type_code[] — тип события (возможно несколько значений)
    • protocol[] — протокол (возможно несколько значений)
    • user_decision[] — решение пользователя (возможно несколько значений)
    • object_size[from] — от скольки байт искать событие (можно использовать отдельно от object_size[to])
    • object_size[to] — до скольки байт искать событие (можно использовать отдельно от object_size[from])
    • protected_catalog_id[] — идентификатор каталога ОЗ (возможно несколько значений)
    • tag_id[] — идентификатор тега (возможно несколько значений)
  • with[] - список дополнительных сущностей, которые должны быть добавлены к объекту (например: отправители, получатели и т.д.):
    • protected_catalogs
    • protected_documents
    • policies
    • senders_keys
    • senders
    • recipients_keys
    • recipients
    • workstations_keys
    • workstations
    • tags
    • perimeters (с версии API 1.1)
    • attachments (с версии API 1.1)
    • files (с версии API 1.1)  — недокументированный параметр, отдающий все контенты, в которых непустое поле FILE_NAME
  • without[] — дополнительные флаги
    • count — не считать totalCount (расчет totalCount может занимать больше половины времени запроса, поэтому лучше воспользоваться методом event/stat)
  • headers[] — список дополнительных полей (заголовков) события (можно написать *, если нужны все). Список можно получить с помощью метода event/header (с версии API 1.1)
  • sort[] — недокументированное поле, позволяющее сортировать результат (получение событий замедляется существенно, для получения последнего/первого события лучше использовать метод event/stat. Возможные ключи:
    • capture_date — asc (с версии API 1.1) /desc, например: ?sort[capture_date]=desc
    • insert_date — asc/desc, например: ?sort[insert_date]=asc (с версии API 1.1)
  • start - с какой позиции начать отдавать события (по умолчанию 0)
  • limit - сколько событий отдавать (по умолчанию 100, не может быть больше 1000)

Ответ: Список событий, отсортированный по времени перехвата (от новых к старым).

Примеры:

Получить первые 100 событий с за январь 2015 года:
GET /xapi/event?filter[date][from]=1420059600&filter[date][to]=1422737999&start=0&limit=100
X-API-Version: 1
X-API-CompanyId: iw
X-API-ImporterName: aplab
X-API-Auth-Token: gla20dos1pcdbr69caxz

Алгоритм при первом получении событий:

  1. Определить, с какого времени нужно получать события. Например, получить из статистики событий (GET /xapi/event/stat) интервал INSERT_DATE.
  2. Разделить интервал на меньшее из значений: количество потоков (но не более 32) или количество ядер на сервере.
  3. В каждом потоке составить и запустить первый запрос на получение списка события вида:
    GET /xapi/event?without[]=count&filter[insert_date][>=]={минимум_интервала}&filter[insert_date][<=]={максимум_интервала}&sort[insert_date]=asc&limit=1000
  4. В полученном списке запомнить все OBJECT_ID.
  5. В полученном списке найти последнюю INSERT_DATE и использовать её в запросе из пункта 3, в качестве минимум_интервала.
  6. В полученном новом списке исключить события, которые запомнили в предыдущей итерации.
  7. Если не дошли до максимум_интервала, снова начать с пункта 4.
  8. Сохранить в персистентное хранилище:
    1. максимальное значение INSERT_DATE, полученное из пункта 1.
    2. список OBJECT_ID из интервала, в который входит максимальное значение INSERT_DATE.
  • Нет меток