Commit Graph

8 Commits

Author SHA1 Message Date
Pascal Bleser
f144a7cc8b groupware: add addressbook and calendar creation APIs
* add Groupware APIs for creating and deleting addressbooks

 * add Groupware APIs for creating and deleting calendars

 * add JMAP APIs for creating and deleting addressbooks, calendars

 * add JMAP APIs to retrieve Principals

 * fix API tagging

 * move addressbook JMAP APIs into its own file

 * move addressbook Groupware APIs into its own file
2026-04-03 15:43:06 +02:00
Pascal Bleser
6c42e090c0 groupware: add changes support for quotas, identities, submissions 2026-04-03 15:43:06 +02:00
Pascal Bleser
4da13418c2 groupware: framework refactorings + add support for /changes + add /objects 2026-04-03 15:43:06 +02:00
Pascal Bleser
b3e91501a0 groupware: pollute code with NOSONAR comments, and make a little more use of JMAP API templates 2026-04-03 15:43:06 +02:00
Pascal Bleser
a7eb6106fc groupware: refactor contactcard changes, and Request framework
* implement ContactCard retrieval endpoint for syncing

 * re-implement that endpoint for Email too

 * fix the Mailbox changes endpoint to actually return changes about
   Mailboxes, and not about Emails

 * when querying the diff of Mailboxes without any prior state, return
   an error since the result is not what one would expect

 * introduce the 'changes' API tag and group

 * refactor the successful response functions to consistently return an
   object type and object state whenever possible

 * move the syncing endpoints under /accounts/*/changes/ for better
   clarity, e.g. /changes/emails instead of /emails/mailbox/*/changes
2026-04-03 15:43:06 +02:00
Pascal Bleser
cf824b5447 groupware: fix typos and minor issues
- fix a bunch of minor issues and typos that were found using GoLand
   and gosec

 - add a gosec Makefile target for Groupware related files, in
   services/groupware/Makefile

 - enable checking JMAP session capabilities for events and contacts,
   and only enable skipping that check for tasks until those are
   implemented in Stalwart as well

 - fix a CWE-190 (integer overflow or wraparound) found by gosec

 - consistently use struct references for methods of Groupware and
   Request, instead of mixing up references and copies

 - always log errors when unable to register a Prometheus metric
2026-04-03 15:43:06 +02:00
Pascal Bleser
322ba160cc groupware: remove remnants of go-swagger documentation, since we are switching to using our own tool instead 2026-04-03 15:43:06 +02:00
Pascal Bleser
1d4edaffaf groupware: as suggested in the review PR 1994, remove all filename prefixes that match the package (groupware_xyz.go -> xyz.go), for groupware, jmap, jscontact, jscalendar 2026-04-03 15:43:05 +02:00