- POST /api/v1/ingest: токен, лимит тела, gzip, durable-запись тела в сырой архив, учёт доставки в SQLite - код ответа отражает доставку, а не разбор: битый JSON — 400, непонятое содержимое — 200, данные уже сохранены и доразберутся позже - сохраняется полный набор заголовков запроса с вычисткой секретов по имени и по совпадению значения с токеном
27 lines
1.2 KiB
SQL
27 lines
1.2 KiB
SQL
-- +goose Up
|
|
-- Доставка — один принятый пакет от Health Auto Export. Тело лежит в сыром
|
|
-- архиве по raw_path; здесь только учёт и метаданные автоматизации.
|
|
CREATE TABLE delivery (
|
|
id TEXT PRIMARY KEY,
|
|
received_at TEXT NOT NULL,
|
|
automation_name TEXT NOT NULL DEFAULT '',
|
|
automation_id TEXT NOT NULL DEFAULT '',
|
|
aggregation TEXT NOT NULL DEFAULT '',
|
|
period TEXT NOT NULL DEFAULT '',
|
|
session_id TEXT NOT NULL DEFAULT '',
|
|
bytes INTEGER NOT NULL,
|
|
sha256 TEXT NOT NULL,
|
|
raw_path TEXT NOT NULL,
|
|
parse_status TEXT NOT NULL,
|
|
points INTEGER NOT NULL DEFAULT 0
|
|
);
|
|
|
|
CREATE INDEX delivery_received_at ON delivery (received_at);
|
|
|
|
-- Хеш тела: пока только учёт. Отсев идентичных повторов включим, когда
|
|
-- увидим на живых данных, как часто HAE присылает байт-в-байт одно и то же.
|
|
CREATE INDEX delivery_sha256 ON delivery (sha256);
|
|
|
|
-- +goose Down
|
|
DROP TABLE delivery;
|