# DLP Aggregation

Централизованная агрегация DLP-событий в `AWatch-rus` реализована скриптом:

- `scripts/aggregate_dlp_events.py`

Это server-side слой, который собирает события из bucket-контуров `ActivityWatch` и пишет их в нормализованное хранилище для отчётности, поиска и Grafana/SIEM-style use cases.

## Какие потоки читаются

Сейчас агрегируются:

- `aw-file-operations_*`
- `aw-dlp-incidents_*`

То есть в агрегатор попадают:

- файловые операции
- DLP-инциденты
- связанный контекст хоста и пользователя

## Куда пишутся данные

Поддерживаются два режима:

- `SQLite` — быстрый smoke/runtime без отдельной БД
- `PostgreSQL` — централизованный reporting path

Для `SQLite` используется `WAL`, чтобы контур был устойчивее при обычной эксплуатации.

## Что даёт агрегатор

Этот слой нужен для:

- централизованного поиска по DLP-событиям
- Grafana-дашбордов
- выгрузки в SIEM-подобные контуры
- нормализации событий из разных bucket-источников

## Инкрементальная работа

Агрегатор хранит state и продолжает сбор с последней успешной точки, чтобы:

- не читать весь исторический массив каждый раз
- не плодить дубли
- переживать рестарты и кратковременные сбои

## Канонические документы

- [Основной документ по агрегатору](../dlp-aggregator.md)
- [Настройка сервера](Server-Setup)
- [Prometheus + Grafana стек](Monitoring-Setup)
