feat: add governed Calendar DSAR coverage

This commit is contained in:
2026-08-20 23:27:27 +02:00
parent 93fb8aeff8
commit a2a9e8e814
5 changed files with 1602 additions and 1 deletions
+29
View File
@@ -191,6 +191,35 @@ the same tenant scope.
## Integration Points
## Data-subject requests and retention boundaries
Calendar implements the optional `privacy.dsar.calendar` capability used by
Core's governed data-subject-request workflow. A search is bounded to the
effective tenant and matches normalized organizer or attendee email, direct
membership references, and independently corroborated namespaced Calendar
collection or event references. Only the matching party fragment is projected;
unrelated attendees and unrelated events in the same collection are not copied
into the case.
The projection includes safe event and collection context, personal view
preferences, subject-owned synchronization configuration, outbox outcomes, and
migration state. It never includes raw ICS or complete iCalendar objects,
collection URLs, remote resource hrefs or ETags, sync tokens, usernames,
credential references or ciphertext, idempotency keys, worker leases, provider
error text, or opaque metadata. An authorized reviewer must use Calendar's own
screens when excluded content is necessary to decide the request.
Synchronized, correlated, deleted, queued, and migrated state is classified as
retained evidence with an explicit reason. Local collections and events and
active credential metadata remain manual-review items because erasure can
affect recurrence, other attendees, institutional scheduling, remote systems,
and retention duties. The only executable provider action is deletion of the
subject's personal view preference; execution locks and revalidates its tenant
and owner and is idempotent. Event, attendee, credential, outbox, and migration
records are never mutated directly by the DSAR provider. Related meeting-poll,
mail, and delivery data remains owned by Scheduling, Poll, Mail, and their own
providers.
### Scheduling
`govoplan-scheduling` should use calendar for: