Skip to content

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

Структура БД

ТаблицаОписание
calendarsid (UUID), owner_id, name, description, color, visibility
calendar_usersid, calendar_id, user_id, role (admin/viewer), created_at, updated_at
eventsid, calendar_id, title, start_at, end_at, all_day, location, recurrence_rule, event_type, service_kind, service_payload
event_sourcescalendar_id, provider, sync_token, access_token (encrypted), last_sync_at

Таблица calendar_users использует модуль service-common/sharing для управления ролями.

Конфигурация

ПеременнаяПо умолчаниюОписание
PORT8095Порт сервера
DB_HOSTАдрес PostgreSQL
DB_PORT5432Порт PostgreSQL
DB_USERПользователь PostgreSQL
DB_PASSWORDПароль PostgreSQL
DB_NAMEИмя базы данных
DB_SSL_MODEdisableРежим SSL
JWT_SECRETСекрет для JWT
JWT_TTL24hВремя жизни токена
MESSAGING_URLnats://localhost:4222URL NATS
SESSION_*Настройки сессий (см. auth)
LOG_LEVELinfoУровень логирования
LOG_FORMATjsonФормат логов
LOG_OUTPUTstdoutКуда писать логи