Files
email-assistant/openspec/changes/local-calendar-tasks/specs/calendar-caldav/spec.md
T

2.6 KiB
Raw Blame History

Calendar CalDAV — Requirement Spec (Delta)

New capability: calendar-caldav Change: local-calendar-tasks

ADDED Requirements

Requirement: REQ-CAL-001: Локальный CalDAV-сервер

MUST — на bigbox должен работать CalDAV-сервер (Radicale), доступный по HTTP на 127.0.0.1:5232, предоставляющий календари и задачи по стандарту CalDAV.

Scenario: Radicale отвечает

GIVEN Radicale запущен WHEN выполняется curl -i -X PROPFIND http://127.0.0.1:5232/ -u login:pass THEN ответ содержит HTTP 207 (Multi-Status) и список коллекций.

Requirement: REQ-CAL-002: Календарь и задачи через CalDAV

MUST — Radicale должен поддерживать как календари (VEVENT), так и задачи (VTODO), чтобы Android-клиент (DAVx5) синхронизировал и календарь, и задачи.

Scenario: Создание события

GIVEN настроенный календарь пользователя WHEN клиент (DAVx5 на Android / curl) создаёт VEVENT через PUT THEN событие сохраняется в Radicale и доступно для чтения обратно.

Requirement: REQ-CAL-003: Синхронизация с Android

MUST — сервер должен поддерживать стандарт CalDAV (RFC 4791) для двусторонней синхронизации с Android через DAVx5 (или аналог).

Scenario: Двусторонняя синхронизация

GIVEN DAVx5 настроен на Android с URL Radicale WHEN создаётся событие на телефоне THEN оно появляется на bigbox (Radicale) и наоборот (событие из Radicale доступно на телефоне).

Requirement: REQ-CAL-004: Безопасность

MUST — Radicale доступен только локально (127.0.0.1) или через TLS-прокси (Caddy) с авторизацией; не должен быть открыт в интернет без TLS.

Scenario: Доступ снаружи

GIVEN Caddy reverse proxy настроен для Radicale WHEN Android подключается по https://<домен>/ THEN соединение TLS + аутентификация работают; без Caddy доступ ограничен локальным интерфейсом.