mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-21 12:06:35 +08:00
feat: basic caldav support (#14372)
fix #13531 #### PR Dependency Tree * **PR #14372** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * CalDAV calendar integration: link and sync CalDAV-compatible calendars (discovery, listing, event sync). * New UI flow and dialog to link CalDAV accounts with provider selection, credentials, and display name. * **API / Config** * Server exposes CalDAV provider presets in config and new GraphQL mutation to link CalDAV accounts. * New calendar config section for CalDAV with validation and defaults. * **Tests** * Comprehensive CalDAV integration test suite added. * **Chores** * Removed analytics tokens from build configuration and reduced Cloud E2E test shards. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -206,6 +206,13 @@ type CalendarAccountObjectType {
|
||||
updatedAt: DateTime!
|
||||
}
|
||||
|
||||
type CalendarCalDAVProviderPresetObjectType {
|
||||
docsUrl: String
|
||||
id: String!
|
||||
label: String!
|
||||
requiresAppPassword: Boolean
|
||||
}
|
||||
|
||||
type CalendarEventObjectType {
|
||||
allDay: Boolean!
|
||||
description: String
|
||||
@@ -1274,6 +1281,13 @@ type LimitedUserType {
|
||||
hasPassword: Boolean
|
||||
}
|
||||
|
||||
input LinkCalDAVAccountInput {
|
||||
displayName: String
|
||||
password: String!
|
||||
providerPresetId: String!
|
||||
username: String!
|
||||
}
|
||||
|
||||
input LinkCalendarAccountInput {
|
||||
provider: CalendarProviderType!
|
||||
redirectUri: String
|
||||
@@ -1462,6 +1476,7 @@ type Mutation {
|
||||
installLicense(license: Upload!, workspaceId: String!): License!
|
||||
inviteMembers(emails: [String!]!, workspaceId: String!): [InviteResult!]!
|
||||
leaveWorkspace(sendLeaveMail: Boolean @deprecated(reason: "no used anymore"), workspaceId: String!, workspaceName: String @deprecated(reason: "no longer used")): Boolean!
|
||||
linkCalDAVAccount(input: LinkCalDAVAccountInput!): CalendarAccountObjectType!
|
||||
linkCalendarAccount(input: LinkCalendarAccountInput!): String!
|
||||
|
||||
"""mention user in a doc"""
|
||||
@@ -2039,6 +2054,7 @@ type ServerConfigType {
|
||||
|
||||
"""server base url"""
|
||||
baseUrl: String!
|
||||
calendarCalDAVProviders: [CalendarCalDAVProviderPresetObjectType!]!
|
||||
calendarProviders: [CalendarProviderType!]!
|
||||
|
||||
"""credentials requirement"""
|
||||
|
||||
Reference in New Issue
Block a user