OciServe-planning: agenda-abonnement (iCalendar-feed) voor mijn inschrijvingen #2427
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
release-blocker
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#2427
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Wat wil je bereiken
Een cursist zet zijn ingeplande sessies in zijn eigen agenda (telefoon, Outlook, Thunderbird) met een abonnement dat zichzelf bijwerkt bij wijzigingen en annuleringen. De server heeft de feed (OciServe #595); geen client biedt hem aan.
Wat mist er nu (origin/main
5802e9360)ociserve_bookings_view.darttoont de inschrijvingen en boekingen (bevestigen, afwijzen, annuleren), maar roeptme/calendar-subscriptionenme/calendar.icsnergens aan.Contract (OciServe
560f1ba)POST /organizations/{org}/me/calendar-subscription(Idempotency-Keyverplicht) → 201{url, expires_at}. De URL is relatief aan de API-basis en bevat een bearer-token in de querystring; alleen de hash wordt bewaard, de URL komt één keer terug. Opnieuw aanroepen roteert het token (de oude URL werkt dan niet meer).DELETE …/me/calendar-subscription→ 204, trekt de feed in.GET …/me/calendar.ics?token=…→ RFC 5545-feed van de boekingen; geannuleerde boekingen staan er als geannuleerd in. Geen sessie nodig: het token ís de inloggegevens.expires_at); een client moet verlenging aanbieden voordat een abonnement stilletjes ophoudt.Gevraagd
token=in elke logregel.Toets op de kernwaarden
Alleen actief voor wie bewust met een OciServe is verbonden (ongewijzigd); zonder server blijft OciDeck volledig lokaal werken. Geen telemetrie, geen wijziging van het bestandsformaat, geen nieuwe verplichte afhankelijkheid. De route staat al in de gepinde speckopie (
test/fixtures/ociserve_openapi.yaml, OciServe45d9a87), dus de pin hoeft niet omhoog; registreer de nieuwe aanroepen wel intest/ociserve_api_drift_test.dart(de contractpoort, #2042).Acceptatiecriteria
Acceptatiecriteria (algemeen)
l10n.d('…')-teksten viamake add-l10n(31 talen).make checkgroen;docs/USER_GUIDE.md,docs/SOURCE_MAP.mdenCHANGELOG.mdbijgewerkt.Gerelateerd
Keiko-schakelaar voor de mails: brenno/Keiko#397. Overzicht: brenno/OciServe#659.
Keten-audit van 2026-10-14, getoetst aan OciServe
560f1ba, Keiko093f679en OciDeck5802e9360. Overzicht: brenno/OciServe#659.Gemerged in #2444 (merge-commit
5446218c72). Na het samenvoegen met main is de per-bestand-dekking van de nieuwe provider-, dialoog- en bewijslagen met tests aangevuld; make check, check-secrets en sast zijn groen. #2424 was al gedekt door me/exam-results.Nalevering in #
d191e3d0d5(PR #2447, commit7efde5aaaf). Een agenda-URL die de OciServe-host verlaat wordt geweigerd; de foutmelding bevat het token niet. Niet live bewezen: dat een ververste URL de vorige op een echte OciServe ongeldig maakt.