Commit Graph

23090 Commits

Author SHA1 Message Date
Pascal Bleser
56a8a6cfd2 groupware: docs: add a quick copy-pastable block for running ldapsearch 2026-04-13 16:40:16 +02:00
Pascal Bleser
0f841e82d3 groupware: upgrade redocly to 2.24.0 2026-04-13 16:40:16 +02:00
Pascal Bleser
0202bb43af 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-13 16:40:16 +02:00
Pascal Bleser
68a4a5a83c groupware: upgrade redocly/cli 2.20.0 -> 2.24.0 2026-04-13 16:40:16 +02:00
Pascal Bleser
c75b87820c groupware: add web frontend settings to the vscode launcher 2026-04-13 16:40:16 +02:00
Pascal Bleser
de5113bfa7 groupware: clarify the ContactCard situation 2026-04-13 16:40:16 +02:00
Pascal Bleser
53a2883ad0 groupware: add contact sorting query parameter and fix default sorting (must use updated instead of name) 2026-04-13 16:40:15 +02:00
Pascal Bleser
6f9bdfe8e8 groupware: documentation: more calendar examples 2026-04-13 16:40:15 +02:00
Pascal Bleser
65954cd8b4 groupware: sort contacts in addressbook by name 2026-04-13 16:40:15 +02:00
Pascal Bleser
736e64ae00 (chore) groupware: tests/groupware: upgrade dependencies 2026-04-13 16:40:15 +02:00
Pascal Bleser
76695c068d 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-13 16:40:15 +02:00
Pascal Bleser
daa95b849c groupware: devtools: add email encryption settings to idmldap.toml 2026-04-13 16:40:15 +02:00
Pascal Bleser
3a7e9c3d96 groupware: upgrade redocly/cli 2.15.1 -> 2.20.2 2026-04-13 16:40:15 +02:00
Pascal Bleser
9f756c1922 groupware: use master auth in launcher 2026-04-13 16:40:15 +02:00
Pascal Bleser
60c5e51aad groupware: upgrade Stalwart image in integration tests from 0.15.0 to 0.15.5 2026-04-13 16:40:15 +02:00
Pascal Bleser
a639d63a11 groupware: upgrade Stalwart image in opencloud_full from 0.15.0 to 0.15.5 2026-04-13 16:40:15 +02:00
Pascal Bleser
98ee6e66eb groupware: add UI example of a ContactCard to the documented examples 2026-04-13 16:40:15 +02:00
Pascal Bleser
ab6201d705 groupware: minor logging improvements to the session cache 2026-04-13 16:40:15 +02:00
Pascal Bleser
b7b540a3c8 groupware: add OIDC authentication support between Groupware backend and Stalwart
* re-implement the auth-api service to authenticate Reva tokens
   following the OIDC Userinfo endpoint specification

 * pass the context where necessary and add an authenticator interface
   to the JMAP HTTP driver, in order to select between master
   authentication (which is used when GROUPWARE_JMAP_MASTER_USERNAME and
   GROUPWARE_JMAP_MASTER_PASSWORD are both set) and OIDC token
   forwarding through bearer auth

 * add Stalwart directory configuration "idmoidc" which uses the
   OpenCloud auth-api service API (/auth/) to validate the token it
   received as bearer auth from the Groupware backend's JMAP client,
   using it as an OIDC Userinfo endpoint

 * implement optional additional shared secret to secure the Userinfo
   service, as an additional path parameter
2026-04-13 16:40:15 +02:00
Pascal Bleser
23e696e7d0 groupware: remove remnants of go-swagger documentation, since we are switching to using our own tool instead 2026-04-13 16:40:15 +02:00
Pascal Bleser
f705cc0b87 groupware: add jscontact examples, and move them to jmap/model_examples.go to avoid dependency recursion 2026-04-13 16:40:15 +02:00
Pascal Bleser
d5ce465503 groupware: use the OIDC client ID 'web' instead of 'groupware' 2026-04-13 16:40:15 +02:00
Pascal Bleser
43dd41d8ee groupware: add STALWART_AUTH_DIRECTORY variable to .env 2026-04-13 16:40:15 +02:00
Pascal Bleser
6f5f8b446b 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-13 16:40:15 +02:00
Pascal Bleser
7b17ec5943 groupware: update DEVELOPERS.md based on Jörn's feedback 2026-04-13 16:40:15 +02:00
Pascal Bleser
943d1d77c7 auth-api: deal with errors properly in NewService 2026-04-13 16:40:15 +02:00
Pascal Bleser
5a4e8dbf9b groupware: set GROUPWARE_JMAP_BASE_URL to use the variable STALWART_DOMAIN, in order to make things work correctly when using the non-default value for STALWART_DOMAIN 2026-04-13 16:40:15 +02:00
Pascal Bleser
733fe69530 groupware: convert documentation to proper markdown 2026-04-13 16:40:15 +02:00
Pascal Bleser
6e97c3fbaf groupware: bump redocly/cli from 2.14.6 to 2.15.1 2026-04-13 16:40:15 +02:00
Pascal Bleser
3572c38d02 groupware: also update DEVELOPER.md with new OpenAPI documentation generation tooling 2026-04-13 16:40:15 +02:00
Pascal Bleser
799ffe5285 groupware: update README to new API documentation generation process, and remove defunct files 2026-04-13 16:40:15 +02:00
Pascal Bleser
b3c6d9c21b groupware: more API examples 2026-04-13 16:40:15 +02:00
Pascal Bleser
ab64e56ecc groupware: change Makefile to use groupware-apidocs instead of go-swagger 2026-04-13 16:40:15 +02:00
Pascal Bleser
5348ecfd4b update redocly 2.14.5 -> 2.14.6 2026-04-13 16:40:15 +02:00
Pascal Bleser
1ffc0ab6cf groupware: migrate to cobra instead of urfave 2026-04-13 16:40:15 +02:00
Pascal Bleser
0fbd0703a9 groupware: update pnpm 10.28.0 -> 10.28.1 2026-04-13 16:40:15 +02:00
Pascal Bleser
6682cddbe7 fix go.mod by tidying after a significant rebase 2026-04-13 16:40:15 +02:00
Pascal Bleser
7661b57f7d API documentation changes for groupware-apidocs
* add example generator infrastructure, with some examples for pkg/jmap
   and pkg/groupware, with more needing to be done

 * alter the apidoc Makefile to stop using go-swagger but, instead, use
   the openapi.yml file that must be dropped into that directory using
   groupware-apidocs (will improve the integration there later)

 * add Makefile target to generate examples

 * bump redocly from 2.4.0 to 2.14.5

 * introduce Request.PathParam() and .PathParamDoc() to improve API
   documentation, as well as future-proofing

 * improve X-Request-ID and Trace-Id header handling in the middleware
   by logging it safely when an error occurs in the middleware
2026-04-13 16:40:15 +02:00
Pascal Bleser
7912fb3461 groupware: update to Stalwart 0.15.0 2026-04-13 16:40:15 +02:00
Pascal Bleser
6aa672539d groupware: shift some attributes of the Groupware object around, in defaults and config sub-structures 2026-04-13 16:40:15 +02:00
Pascal Bleser
9ed207e35e groupware: fix failing pkg/jscontact unit tests 2026-04-13 16:40:15 +02:00
Pascal Bleser
9769634991 groupware: fix failing pkg/jscalendar unit tests 2026-04-13 16:40:15 +02:00
Pascal Bleser
343cbba955 groupware: add description and version annotations for env configuration properties 2026-04-13 16:40:15 +02:00
Pascal Bleser
da02a4e3d0 groupware: improve email submission and testing
* jmap/EmailCreate: add more attributes that were omitted: Headers,
   InReplyTo, References, Sender

 * add jmap GetEmailSubmissionStatus

 * improve email integration tests by adding a thorough test for email
   submission

 * jmap integration tests: provision principals and domains using the
   Stalwart Management API, switching from an in-memory to an internal
   directory
2026-04-13 16:40:15 +02:00
Pascal Bleser
dbc0fef53f groupware: add retrieving and adding mailboxIds for drafts and sent if they are missing 2026-04-13 16:40:15 +02:00
Pascal Bleser
70600c1359 groupware: refactor response objects to take a list of accountIds 2026-04-13 16:40:15 +02:00
Pascal Bleser
0abc78df8b groupware: minor: remove network declaration in stalwart.yml 2026-04-13 16:40:15 +02:00
Pascal Bleser
c295b596d3 groupware: fix missing casting to jmap.State after changes in pkg/jmap 2026-04-13 16:40:15 +02:00
Pascal Bleser
03945d3adb groupware, auth-api: remove tracing and tracing configuration 2026-04-13 16:40:15 +02:00
Pascal Bleser
8cf39ec3e0 groupware: upgrade the Stalwart image in devtools from 0.14.0 to 0.14.1 2026-04-13 16:40:15 +02:00