Add OAuth callback forwarding with no-redirect RestTemplate
- Add noRedirectRestTemplate bean (HttpClient.Redirect.NEVER) so the 302 from VOIPService's OAuth callback is passed through to the browser instead of being...
Replace JWT config with OAuth connect UI for RingCentral
- RingCentralConfig: OAuth connect/disconnect button with status indicator, main phone number field, test connection (only when connected) - voipApi: add getO...
Refactor RingCentral to OAuth 2.0 Authorization Code flow
- New OAuthController: /oauth/start (returns authUrl), /oauth/callback (exchanges code, saves tokens), /oauth/status, DELETE /oauth/token - OTKValidationFilte...
Create KamoTokens schema and org_oauth_token table
- CREATE SCHEMA IF NOT EXISTS kamotokens - CREATE TABLE kamotokens.org_oauth_token with unique (org_id, provider) - DROP COLUMN jwt_key from voip_provider_confi...
OAuth 2.0 토큰 저장을 위한 OrgOAuthToken entity 추가
- KamoTokens schema (kamotokens.org oauth token)의 OrgOAuthToken entity 추가 - FindByOrgIdAndProvider / deleteByOrgIdAndProvider를 사용하여 OrgOAuthTokenRepository 추가 -...
Equal-height feature cards and Kazoo-aware provider descriptions
- Set height: 100% on FeatureCard motion wrapper so cards in the same row match the tallest card - Update KamoPBX description to highlight Kazoo as a carrier-gr...
Add SmsChatTab with search, emoji, attach, timestamps, quick replies
Add SMS tool button to NavTop, gate softphone + SMS on organization.isVoip
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,...
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
Add GroupwareProvider interface, ProviderContext, and model classes
- GroupwareProvider interface defines calendar and contact book operations - ProviderContext carries runtime context for provider invocations - Model classes: P...
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에 추가하기 - FindByContactIntegrationId에 추가하기CalendarRepository - FindByContactIntegration연락처 - FindByStatusIsNull 을 추가하여 ContactSyncLogRepos...
Add proxyDav route, fix forward() body guard for DAV methods, add email service URL
추가 findByUidAndContactBookId, findChanged ContactRepository에 대한 findDeletedSince; add findByOwnerId to ContactBookRepository
CalDavController 및 CalendarService DAV 메소드 추가
FindEventByUid 추가, getChangedEventsSince, getDeletedEventsSince 에 일정표 추가 CalDavController 처리 PROPFIND, 보고서, MKCALENDAR, PROPPATCH, GET, PUT, CalDAV 캘린더 컬렉션의 DEL...