Files

52 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 доступ
ограничен локальным интерфейсом.