Sprint 1: GeoIP-модуль (RIPE Stat): загрузка, кэш, расписание, fallback #25

Open
opened 2026-10-21 23:24:29 +03:00 by embeddevio · 0 comments
Owner

Owner: backend · Est: 5 SP · P0 · Sprint 1 · Deps: #24 · Refs #15

  • Провайдер-абстракция GeoProvider; реализация RIPE Stat API (country-resource-list, IPv4+IPv6), ~11.4k префиксов — как в PoC.
  • Кэш-снапшот на диске (/data/geoip/), версия/дата, загрузка при старте из кэша → затем обновление в фоне.
  • Расписание обновления (cron-подобное), ручной forced update, метрики (время, кол-во префиксов, источник, ошибки).
  • Fallback при недоступности источника с явным статусом «используется кэш от даты X» на UI/API.

AC:

  • GIVEN первый старт без кэша, WHEN приложение поднялось, THEN GeoIP загружен и счётчик префиксов ≥ 10 000 (метрика + лог).
  • GIVEN недоступный RIPE (мок 503), WHEN стартует приложение, THEN используется кэш и в статусе видна дата снапшота, а не тихая ошибка.
  • GIVEN наступило расписание, WHEN прошло время, THEN выполнен update и обновлён ipset без перезапуска контейнера.

DoD: coverage ≥70%, CI green, ревью владельца роли.

**Owner:** backend · **Est:** 5 SP · **P0** · **Sprint 1** · **Deps:** #24 · Refs #15 - Провайдер-абстракция `GeoProvider`; реализация RIPE Stat API (`country-resource-list`, IPv4+IPv6), ~11.4k префиксов — как в PoC. - Кэш-снапшот на диске (`/data/geoip/`), версия/дата, загрузка при старте из кэша → затем обновление в фоне. - Расписание обновления (cron-подобное), ручной forced update, метрики (время, кол-во префиксов, источник, ошибки). - Fallback при недоступности источника с явным статусом «используется кэш от даты X» на UI/API. AC: - GIVEN первый старт без кэша, WHEN приложение поднялось, THEN GeoIP загружен и счётчик префиксов ≥ 10 000 (метрика + лог). - GIVEN недоступный RIPE (мок 503), WHEN стартует приложение, THEN используется кэш и в статусе видна дата снапшота, а не тихая ошибка. - GIVEN наступило расписание, WHEN прошло время, THEN выполнен update и обновлён ipset без перезапуска контейнера. DoD: coverage ≥70%, CI green, ревью владельца роли.
embeddevio added this to the Sprint 1 — Ядро шлюза: tunnel / routing / GeoIP / DNS milestone 2026-10-21 23:24:29 +03:00
embeddevio added the backendstatus/backlog labels 2026-10-21 23:24:29 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: embeddevio/awg-dash#25