Sprint 1: VPN Controller — парсинг/валидация .conf, up/down/restart, статус туннеля #22

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

Owner: backend · Est: 8 SP · P0 · Sprint 1 · Deps: #19, #20 · Refs #15

  • Парсинг и валидация .conf (AmneziaWG/WireGuard: Address, DNS, PrivateKey, Peer/PublicKey, PresharedKey, AllowedIPs, Endpoint, PersistentKeepalive, Jc/Jmin/Jmax/S1/S2/H1..H4), ошибки — с номером строки.
  • Жизненный цикл: up / down / restart, идемпотентность, modprobe amneziawg с fallback на userspace amneziawg-go, поднятие адресов и MTU.
  • Статус через awg show: handshake (сек), endpoint, rx/tx, аптайм, external_ip.

AC:

  • GIVEN валидный .conf, WHEN up, THEN интерфейс awg0 в UP и хендшейк < 30 с; статус отдаётся структурой, а не парсингом текста в UI.
  • GIVEN битый .conf, WHEN валидация, THEN ошибка с указанием поля и строки, интерфейс не поднят.
  • GIVEN отсутствует модуль ядра, WHEN up, THEN используется amneziawg-go и статус помечен как userspace-режим.
  • GIVEN интерфейс down, WHEN запрос статуса, THEN status=down + причина, без 500.

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

**Owner:** backend · **Est:** 8 SP · **P0** · **Sprint 1** · **Deps:** #19, #20 · Refs #15 - Парсинг и валидация `.conf` (AmneziaWG/WireGuard: Address, DNS, PrivateKey, Peer/PublicKey, PresharedKey, AllowedIPs, Endpoint, PersistentKeepalive, Jc/Jmin/Jmax/S1/S2/H1..H4), ошибки — с номером строки. - Жизненный цикл: up / down / restart, идемпотентность, `modprobe amneziawg` с fallback на userspace `amneziawg-go`, поднятие адресов и MTU. - Статус через `awg show`: handshake (сек), endpoint, rx/tx, аптайм, external_ip. AC: - GIVEN валидный `.conf`, WHEN `up`, THEN интерфейс awg0 в UP и хендшейк < 30 с; статус отдаётся структурой, а не парсингом текста в UI. - GIVEN битый `.conf`, WHEN валидация, THEN ошибка с указанием поля и строки, интерфейс не поднят. - GIVEN отсутствует модуль ядра, WHEN `up`, THEN используется `amneziawg-go` и статус помечен как userspace-режим. - GIVEN интерфейс down, WHEN запрос статуса, THEN `status=down` + причина, без 500. 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#22