Commit Graph

23177 Commits

Author SHA1 Message Date
Pascal Bleser
f5a9c2235a groupware: add GetIdentityChanges 2026-04-30 10:51:45 +02:00
Pascal Bleser
995ab9f6cd groupware: bump @redocly/cli 2.24.0 -> 2.25.2 2026-04-30 10:51:45 +02:00
Pascal Bleser
98e1701c0a groupware: add changes support for quotas, identities, submissions 2026-04-30 10:51:45 +02:00
Pascal Bleser
0b984a8e2f groupware: framework refactorings + add support for /changes + add /objects 2026-04-30 10:51:45 +02:00
Pascal Bleser
4d9e402cfd groupware: pollute code with NOSONAR comments, and make a little more use of JMAP API templates 2026-04-30 10:51:45 +02:00
Pascal Bleser
8a9a7aebc6 groupware: docs: add a quick copy-pastable block for running ldapsearch 2026-04-30 10:51:45 +02:00
Pascal Bleser
ca7b42a158 groupware: upgrade redocly to 2.24.0 2026-04-30 10:51:45 +02:00
Pascal Bleser
c1f7bc2261 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-30 10:51:45 +02:00
Pascal Bleser
aee6fb3a67 groupware: upgrade redocly/cli 2.20.0 -> 2.24.0 2026-04-30 10:51:45 +02:00
Pascal Bleser
95ed35fc2a groupware: add web frontend settings to the vscode launcher 2026-04-30 10:51:45 +02:00
Pascal Bleser
b12345068c groupware: clarify the ContactCard situation 2026-04-30 10:51:45 +02:00
Pascal Bleser
9f0cf5ef4d groupware: add contact sorting query parameter and fix default sorting (must use updated instead of name) 2026-04-30 10:51:45 +02:00
Pascal Bleser
a4dac96fbe groupware: documentation: more calendar examples 2026-04-30 10:51:44 +02:00
Pascal Bleser
a3de949e5e groupware: sort contacts in addressbook by name 2026-04-30 10:51:44 +02:00
Pascal Bleser
900954d5fb (chore) groupware: tests/groupware: upgrade dependencies 2026-04-30 10:51:44 +02:00
Pascal Bleser
549fc4642a 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-30 10:51:44 +02:00
Pascal Bleser
9a2d718851 groupware: devtools: add email encryption settings to idmldap.toml 2026-04-30 10:51:44 +02:00
Pascal Bleser
3eb400a204 groupware: upgrade redocly/cli 2.15.1 -> 2.20.2 2026-04-30 10:51:44 +02:00
Pascal Bleser
d645304d76 groupware: use master auth in launcher 2026-04-30 10:51:44 +02:00
Pascal Bleser
7e2e4f4597 groupware: upgrade Stalwart image in integration tests from 0.15.0 to 0.15.5 2026-04-30 10:51:44 +02:00
Pascal Bleser
a77c489ab3 groupware: upgrade Stalwart image in opencloud_full from 0.15.0 to 0.15.5 2026-04-30 10:51:44 +02:00
Pascal Bleser
7b0215e332 groupware: add UI example of a ContactCard to the documented examples 2026-04-30 10:51:44 +02:00
Pascal Bleser
199360ae41 groupware: minor logging improvements to the session cache 2026-04-30 10:51:44 +02:00
Pascal Bleser
c400949718 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-30 10:51:44 +02:00
Pascal Bleser
8ad3652ba2 groupware: remove remnants of go-swagger documentation, since we are switching to using our own tool instead 2026-04-30 10:51:44 +02:00
Pascal Bleser
8ba07def4c groupware: add jscontact examples, and move them to jmap/model_examples.go to avoid dependency recursion 2026-04-30 10:51:44 +02:00
Pascal Bleser
75f48fca59 groupware: use the OIDC client ID 'web' instead of 'groupware' 2026-04-30 10:51:44 +02:00
Pascal Bleser
5f17c63916 groupware: add STALWART_AUTH_DIRECTORY variable to .env 2026-04-30 10:51:44 +02:00
Pascal Bleser
700930c3a9 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-30 10:51:44 +02:00
Pascal Bleser
7df57c9ef1 groupware: update DEVELOPERS.md based on Jörn's feedback 2026-04-30 10:51:44 +02:00
Pascal Bleser
3e377694b2 auth-api: deal with errors properly in NewService 2026-04-30 10:51:44 +02:00
Pascal Bleser
af9d3418f0 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-30 10:51:44 +02:00
Pascal Bleser
f57507fa98 groupware: convert documentation to proper markdown 2026-04-30 10:51:44 +02:00
Pascal Bleser
f91b944aca groupware: bump redocly/cli from 2.14.6 to 2.15.1 2026-04-30 10:51:44 +02:00
Pascal Bleser
4de09d2444 groupware: also update DEVELOPER.md with new OpenAPI documentation generation tooling 2026-04-30 10:51:44 +02:00
Pascal Bleser
f21aa4279f groupware: update README to new API documentation generation process, and remove defunct files 2026-04-30 10:51:44 +02:00
Pascal Bleser
8a3a6160f9 groupware: more API examples 2026-04-30 10:51:44 +02:00
Pascal Bleser
9f686657a3 groupware: change Makefile to use groupware-apidocs instead of go-swagger 2026-04-30 10:51:44 +02:00
Pascal Bleser
8444f9e088 update redocly 2.14.5 -> 2.14.6 2026-04-30 10:51:44 +02:00
Pascal Bleser
8dd74c201a groupware: migrate to cobra instead of urfave 2026-04-30 10:51:44 +02:00
Pascal Bleser
25804d22bf groupware: update pnpm 10.28.0 -> 10.28.1 2026-04-30 10:51:44 +02:00
Pascal Bleser
1d6883d664 fix go.mod by tidying after a significant rebase 2026-04-30 10:51:44 +02:00
Pascal Bleser
504e107e11 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-30 10:51:44 +02:00
Pascal Bleser
b5037f89c9 groupware: update to Stalwart 0.15.0 2026-04-30 10:51:44 +02:00
Pascal Bleser
1abeba85f0 groupware: shift some attributes of the Groupware object around, in defaults and config sub-structures 2026-04-30 10:51:44 +02:00
Pascal Bleser
2d89fb381a groupware: fix failing pkg/jscontact unit tests 2026-04-30 10:51:44 +02:00
Pascal Bleser
fb39d46a11 groupware: fix failing pkg/jscalendar unit tests 2026-04-30 10:51:44 +02:00
Pascal Bleser
73b286e014 groupware: add description and version annotations for env configuration properties 2026-04-30 10:51:44 +02:00
Pascal Bleser
2dbf2973a6 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-30 10:51:44 +02:00
Pascal Bleser
289c9678a9 groupware: add retrieving and adding mailboxIds for drafts and sent if they are missing 2026-04-30 10:51:44 +02:00