Appearance
Scheduler
Назначение
Сервис календарей и планирования задач платформы. Обеспечивает: пользовательские календари с шарингом, события (встречи, напоминания), сервисные события (автоматическое выполнение команд через command-manager), подготовка к синхронизации с внешними календарями.
Порты
- HTTP: 8095
- БД:
scheduler_db(PostgreSQL, host: 5437 в dev)
Ключевые возможности
- CRUD календарей с visibility:
private/shared/public - Шаринг календарей с ролями
admin(полный доступ) /viewer(только чтение) черезservice-common/sharing - Два типа событий:
- user — встречи, напоминания (title, start/end, all_day, location, RRULE)
- service — автовыполнение команд (service_kind:
command/job, service_payload)
- Фильтрация событий по временному диапазону (
from/toв RFC3339) - Поддержка RRULE (правила повторения iCalendar)
- Подготовка к синхронизации с внешними календарями (EventSource: Google, Outlook, Yandex)
- Swagger UI
Структура БД
| Таблица | Описание |
|---|---|
calendars | id (UUID), owner_id, name, description, color, visibility |
calendar_users | id, calendar_id, user_id, role (admin/viewer), created_at, updated_at |
events | id, calendar_id, title, start_at, end_at, all_day, location, recurrence_rule, event_type, service_kind, service_payload |
event_sources | calendar_id, provider, sync_token, access_token (encrypted), last_sync_at |
Таблица
calendar_usersиспользует модульservice-common/sharingдля управления ролями.
Конфигурация
| Переменная | По умолчанию | Описание |
|---|---|---|
PORT | 8095 | Порт сервера |
DB_HOST | — | Адрес PostgreSQL |
DB_PORT | 5432 | Порт PostgreSQL |
DB_USER | — | Пользователь PostgreSQL |
DB_PASSWORD | — | Пароль PostgreSQL |
DB_NAME | — | Имя базы данных |
DB_SSL_MODE | disable | Режим SSL |
JWT_SECRET | — | Секрет для JWT |
JWT_TTL | 24h | Время жизни токена |
MESSAGING_URL | nats://localhost:4222 | URL NATS |
SESSION_* | — | Настройки сессий (см. auth) |
LOG_LEVEL | info | Уровень логирования |
LOG_FORMAT | json | Формат логов |
LOG_OUTPUT | stdout | Куда писать логи |