Use correct session key casing for orgID and memberID
KSessionService stores keys as orgID and memberID (capital D). Both controllers were calling .get("orgId") and .get("memberId") which always returns null, causi...
Always show softphone and SMS buttons in NavTop
Removed isVoip gate so the buttons are always visible regardless of feature flag state.
Add Dockerfile for VOIPService
Matches the shared-library + service two-stage build pattern used by EmailService and other Java services.
Use feature type name as key before numeric id in org feature preprocessing
Java returns features with `type: "VOIP"` and a numeric `id`. The preprocessing chain had `obj.id` before `obj.type`, causing all features to get numeric string...
Add SMS tool button to NavTop, gate softphone + SMS on organization.isVoip
Добавить voip.> для потоковых субъектов NATS и обрабатывать незаконный государственный иск в VoipStompRelayController
Поток NATS охватывал только чат.> так что подписка на войп.> брошенный Незаконное государственное изъятие (СУБ-90007) Никаких совпадений. Добавлено voip. в пото...
Add security-service.*** to K8s ConfigMap
KamoJwtService requires this property for Bearer token validation in DavAuthFilter, but the K8s ConfigMap overrides application.yml and was missing it — causing...
Redesign phone provider setup to match email provider format with logos, help tips, and correct nav tabs
- Rewrite PhoneProviderSetup to match EmailProviderSetup pattern: list/config view split, AnimatePresence transitions, back button with provider name in header,...
Show Phone System(s) settings unconditionally so orgs can configure VOIP before enabling it
- Remove isVoip gate from phone section on /settings page — Provider Setup card has no condition so it always appears; Agents and Dial Plans still gated by isVo...
Guard against non-array API responses in useContacts hook
setBooks, fetchContacts, and searchContacts now safely handle error objects and Spring paginated wrappers instead of crashing with 'e.map is not a function'.
Правильное название поля в FindEventsNeedingSync запрос от «интеграции» до «контактной интеграции»
Add Personal Calendars & Contacts section to member membership-permissions tab
Add PersonalProviderSection component for member CalDav/CardDav integrations
Initial DaemonService project — Quartz jobs, NATS publishers, K8s, CI/CD
Write ContactSyncLog on calendar/contact mutations for bidirectional sync
Add Google, Microsoft, and GenericDav provider stubs with token refreshers
Add IntegrationSettingsController, IntegrationSettingsService, SyncTriggerPublisher stub
Добавить методы запросов на основе ID в ContactIntegrationRepository
Extract resolveUserId helper, add ETag comment in KamoGroupwareProvider
Добавить интерфейс GroupwareProvider, ProviderContext и классы моделей
Интерфейс GroupwareProvider определяет календарные и контактные операции ProviderContext содержит контекст времени выполнения для вызовов провайдера - Классы мо...
CalDav/CardDav Part 4 — schema indexes and email repo scan
- Add supplemental indexes on **************** and **************** via SchemaCleanupRunner (Hibernate ddl-auto:update adds the FK columns; indexes are extr...
CalDav/CardDav Part 4 — общий репозиторий библиотек и добавления объектов
Добавить ContactIntegration FK в ContactBook - Добавить findByContactIntegrationId в UserCalendarRepository Добавить findByContactIntegrationId в ContactBookRep...
Add proxyDav route, fix forward() body guard for DAV methods, add email service URL
Add CardDavController and ContactService DAV methods for CardDAV support
Добавить findByUidAndContactBookId, findChanged С тех пор FindDeletedSince to ContactRepository; добавить findByOwnerId в ContactBookRepository
Add CalDavController and CalendarService DAV methods
Adds findEventByUid, getChangedEventsSince, getDeletedEventsSince to CalendarService. Adds CalDavController handling PROPFIND, REPORT, MKCALENDAR, PROPPATCH, GE...
Добавить findByIcalUidAndUserCalendarId, findChanged С тех пор FindDeletedSince to CalendarEventRepository
Как вы видите судоходство?
Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.