- `healthlog reindex` собирает витрину из журнала (тела архива + учёт доставок) в ОТДЕЛЬНЫЙ файл базы, строго по `(received_at, id)`; рабочую базу читает без наката миграций и не трогает вовсе. Подмену делает человек при остановленном сервисе: переименование поверх открытого дескриптора портит базу молча. - Журналом считается архив, а не таблица доставок: тело без учётной записи заводится заново (метка из ULID, размер и хеш по распакованному телу), запись без тела переносится, но не сворачивается. Оракул сходимости встроен — два отпечатка и «объектов было/стало»; пустой журнал успехом не считается. - Прогон живого архива переехал на новый пакет: второго проигрывателя журнала в проекте не осталось, а его утверждение о ключе сна перестало быть константой, протухающей с каждой доставкой.
32 lines
1.5 KiB
TOML
32 lines
1.5 KiB
TOML
# Конфигурация локального запуска в контейнере (`task up`).
|
|
#
|
|
# ВНИМАНИЕ: этот файл коммитится. Токенов в нём быть не должно.
|
|
# Сейчас проверка токенов выключена сознательно — сервис работает только в
|
|
# доверенной локальной сети, телефон шлёт на IP хоста. Перед выездом на
|
|
# rivendell токены переезжают в отдельный несохраняемый файл, см. задачу
|
|
# беклога «Управление секретами и токенами».
|
|
|
|
[server]
|
|
addr = ":8080"
|
|
read_timeout = "5m" # экспорт истории — десятки мегабайт, бывает медленно
|
|
write_timeout = "30s"
|
|
|
|
[auth]
|
|
write_tokens = [] # ПУСТО = проверка выключена, см. предупреждение выше
|
|
read_tokens = []
|
|
|
|
[storage]
|
|
# Пути внутри контейнера. Снаружи это каталог ./data, смонтированный в /data
|
|
# (см. docker-compose.yml): база и сырой архив переживают пересборку образа.
|
|
db_path = "/data/healthlog.db"
|
|
archive_dir = "/data/raw"
|
|
|
|
[ingest]
|
|
# Ретроактивен: тем же пределом пересборка читает тела из архива, см.
|
|
# config.example.toml.
|
|
max_body_mb = 64
|
|
|
|
[log]
|
|
level = "info"
|
|
format = "json"
|