- Shipped
- 2026년 11월 15일 오전 10:00 UTC
- Author
- Kamo
- Commit
- 3b85588
설정 › 이메일 › CalDAV/CardDAV가 외부 연결을 저장하고 "마지막 연결"을 표시했습니다 아무것도 가져오지 않은 동기화에 대해 "synced" (DaemonService의 작업이 카운터를 충돌시켰습니다 모든 것을 IDLE 로 표시했고, 제공자 클래스는 TODO 였습니다) 그들을 실제로 동기화합니다 (그룹웨어/동기화): - CalDAV/CardDAV: 발견 (주소 → 주체 → 홈 세트 → 컬렉션, /.well-known 폴백, 붙여넣기 단일 캘린더 주소가 작동), CTag/sync-token 체크, 달력 쿼리 ETag 목록 (마지막 366 일), 변경 사항의 multiget, PUT/DELETE with If-Match/If-None-Match. iCloud는 기본 주소를 지정한다. - Google Calendar + 사람들, Microsoft 그래프 달력 + 연락처에 대한 보너스 /oauth 흐름 저장소; 새로 고침된 토큰(회전된 새로 고침 토큰은 유지됨) 새로 고침한 정확한 blob만을 대체하는 write. - IcsImportService.upsert (시리즈, 예외, EXDATEs)를 통해 이벤트 랜드 및 ContactService + ContactDetailStore를 통한 연락처 — 초대장 없음, 아니요 알림, 원시 테이블 쓰기가 없습니다. - 컬렉션 / 항목 당 부기 (새로운 groupware_sync_ * 테이블) 업데이트를 제공, 삭제 및 양방향: 먼저 당기기 (외부 복사본이 승리), 그 다음 푸시 Kamo 통합이 양방향이고 컬렉션이 있을 때 편집/생성/삭제 가드: 실패하거나 의심스럽게 빈 목록에서 아무것도 제거되지 않음, Kamo 가져오지 않은 아무것도, 창 밖으로 나이가 든 아무것도; 패스 거기에 있는 컬렉션의 대부분을 삭제하는 것은 거부됩니다. - 상태는 정직하다 : 실행하는 동안 동기화, IDLE + lastSyncedAt 전체 후에만 fetch, ERROR + plain-words errorMessage 그렇지 않으면; 열별로 작성되므로 컬렉션별 lastError와 카운트는 다음과 같습니다 설정 페이로드(syncSupported, calendarsSynced, eventsSynced, addressBooksSynced, contactsSynced, 컬렉션[]). - 스케줄링: **************** (DaemonService의 시계) 및 /integrations/{id} (daemon.sync.trigger를 통해 지금 동기화, 로컬 폴백 없음) NATS); 통합당 SingletonTaskRunner 임대로 팟이 두 번 실행되지 않습니다. - 테스트 연결이 이제 로그인하고 목록을 생성합니다. 회원 행은 그들의 조직을 기록합니다. 통합을 삭제하면 동기화된 것을 분리(유지)합니다. 외부 주소 공용 호스트로 https로 연결되어야 합니다(클러스터/SSRF 범위 제한); 자격 증명은 로그되지 않습니다. - 죽은 TODO 공급자 스탭과 사용되지 않는 새로 고침을 제거했습니다.
