Commit Graph

23220 Commits

Author SHA1 Message Date
Pascal Bleser
1d514b9858 groupware: fix email search, add variant that includes the full emails 2026-06-11 15:01:35 +02:00
Pascal Bleser
46f46e1f73 groupware: fix email search, add variant that includes the full emails 2026-06-11 15:01:35 +02:00
Pascal Bleser
3e7c4a023b Groupware: refactor jmap package, implement Email/set, EmailSubmission
* refactor the jmap package to split it into several files as the
   jmap.api.go file was becoming too unwieldy

 * refactor the Groupware handler function response to be a Response
   object, to be more future-proof and avoid adding more and more
   return parameters while handling "no content" response as well

 * more godoc for the JMAP model

 * add Email creation, updating, deleting (Email/set,
   EmailSubmission/set)

 * add endpoints
   - POST /accounts/{accountid}/messages
   - PATCH|PUT /accounts/{accountid}/messages/{messageid}
   - DELETE /accounts/{accountid}/messages/{messageid}
2026-06-11 15:01:35 +02:00
Pascal Bleser
e364f73caa groupware: implement message search with snippets 2026-06-11 15:01:35 +02:00
Pascal Bleser
8533a693b2 groupware: blob streaming (upload and download) 2026-06-11 15:01:35 +02:00
Pascal Bleser
f290fe18e8 groupware: more JMAP operations implementation 2026-06-11 15:01:35 +02:00
Pascal Bleser
7acb223e4e groupware: further implementation and improvements 2026-06-11 15:01:35 +02:00
Pascal Bleser
dcc0634f0b upgrade Stalwart to 0.13.2 2026-06-11 15:01:35 +02:00
Pascal Bleser
5074f1b99b refactored the Session object, refactored the services/groupware directory, and started Swagger documentation implementation 2026-06-11 15:01:35 +02:00
Pascal Bleser
17ba168593 groupware: refactoring the API mechanisms 2026-06-11 15:01:35 +02:00
Pascal Bleser
de5fe452af groupware: implement JSON:API's error response format, with a revamped error handling in jmap and services/groupware 2026-06-11 15:01:35 +02:00
Pascal Bleser
e1683ae74b Refactor groupware service after ADR decision on the Groupware API
* after having decided that the Groupware API should be a standalone
   independent custom REST API that is using JMAP data models as much as
   possible,
 * removed Groupware APIs from the Graph service
 * moved Groupware implementation to the Groupware service, and
   refactored a few things accordingly
2026-06-11 15:01:30 +02:00
Pascal Bleser
294e326d72 Groupware and jmap: cleanup and API documentation 2026-06-11 15:00:43 +02:00
Pascal Bleser
2fd70615ee groupware: remove unneeded messages.go that was a remainder from an earlier implementation attempt, which also fixes compilation issues due to changes in main 2026-06-11 15:00:43 +02:00
Pascal Bleser
e33217161d opencloud_full: upgrade Stalwart to 0.12.5, and use the ghcr.io container repository to avoid Hub limits 2026-06-11 15:00:43 +02:00
Pascal Bleser
a5789912b9 Groupware improvements: refactoring, k6 tests
* refactored the models to be strongly typed with structs and mapstruct
   to decompose the dynamic parts of the JMAP payloads

 * externalized large JSON strings for tests into .json files under
   testdata/

 * added a couple of fantasy Graph groupware APIs to explore further
   options

 * added k6 scripts to test those graph/me/messages APIs, with a setup
   program to set up users in LDAP, fill their IMAP inbox, activate them
   in Stalwart, cleaning things up, etc...
2026-06-11 15:00:43 +02:00
Pascal Bleser
a06b4fdff8 fix Stalwart LDAP configuration 2026-06-11 15:00:43 +02:00
Pascal Bleser
e2215fc28a Use password policy overlay in LDAP and configure Stalwart to use it 2026-06-11 15:00:43 +02:00
Pascal Bleser
8469f44482 upgrade Stalwart to 0.12.4 2026-06-11 15:00:43 +02:00
Pascal Bleser
e31ad16b1f groupware: removed debugging logs 2026-06-11 15:00:43 +02:00
Pascal Bleser
99e984b8f9 jwkset: remove debugging printlns 2026-06-11 15:00:43 +02:00
Pascal Bleser
7027ea62c1 auth-api: fix: was missing newly introduced metrics 2026-06-11 15:00:43 +02:00
Pascal Bleser
8f340c96bf groupware and jmap improvements and refactoring 2026-06-11 15:00:43 +02:00
Pascal Bleser
8f64f2aa27 upgrade Stalwart to 0.12 2026-06-11 15:00:43 +02:00
Pascal Bleser
ba3c9bb398 minor corrections to the Stalwart configuration 2026-06-11 15:00:43 +02:00
Pascal Bleser
a233cc2ae5 Introduce a the auth-api service
* primitive implementation to demonstrate how it could work, still to
   be considered WIP at best

 * add new dependency: MicahParks/jwkset and MicahParks/keyfunc to
   retrieve the JWK set from KeyCloak to verify the signature of the
   JWTs sent as part of Bearer authentication in the /auth API

 * (minor) opencloud/.../service.go: clean up a logging statement that
   was introduced earlier to hunt down why the auth-api service was not
   being started
2026-06-11 15:00:43 +02:00
Pascal Bleser
4f2782930a add an auth-api service to make an exemplary implementation of an external authentication API for third party services such as Stalwart 2026-06-11 15:00:41 +02:00
Pascal Bleser
e0b845aa62 move services/groupware/pkg/jmap to pkg/jmap 2026-06-11 15:00:07 +02:00
Pascal Bleser
3d5329e08e WIP: restructure the Jmap client, and implement the /me/messages Graph API endpoint with it 2026-06-11 15:00:07 +02:00
Pascal Bleser
48a5387f6f add an OIDC Directory to Stalwart, requires exposing Keycloak port 8080 directly to access the userinfo endpoint using HTTP since the certificates in traefik are self-signed and end up being rejected by Stalwart with no option to bypass the certificate check 2026-06-11 15:00:07 +02:00
Pascal Bleser
d26edbb243 rename Stalwart fallback admin username from 'admin' to 'mailadmin' since 'admin' exists as a regular user in LDAP and thus won't have access to the administration 2026-06-11 15:00:06 +02:00
Pascal Bleser
53ca9f40f8 add missing routing for /groupware (currently unprotected for testing) 2026-06-11 15:00:05 +02:00
Pascal Bleser
a3f1ee1ab9 WIP: initial implementation of the groupware service 2026-06-11 14:59:09 +02:00
Pascal Bleser
e12a738b7d Add Stalwart container to the opencloud_full deployment, using the OpenLDAP container as a directory for user authentication 2026-06-11 14:59:08 +02:00
opencloudeu
3c0d70987d [tx] updated from transifex 2026-06-11 10:00:56 +00:00
opencloudeu
6e0045bd87 [tx] updated from transifex 2026-06-11 09:51:16 +00:00
Florian Schade
40efa88989 Merge pull request #2924 from opencloud-eu/next
next to main
2026-06-11 11:48:49 +02:00
Christian Richter
61eed98f07 add static OC_MACHINE_AUTH_API_KEY
Signed-off-by: Christian Richter <c.richter@opencloud.eu>
2026-06-11 10:53:49 +02:00
Benedikt Kulmann
2232ae1e57 Merge pull request #2930 from opencloud-eu/core-apps-env
feat: add core apps env variable to override the default core apps
2026-06-11 10:05:27 +02:00
Benedikt Kulmann
235726e8a9 feat: add core apps env variable to override the default core apps 2026-06-11 09:52:10 +02:00
Florian Schade
84b96f6f8c fix: duplicated fontFS initialization 2026-06-11 09:28:37 +02:00
Benedikt Kulmann
35766b37d7 fix: missing returns 2026-06-11 09:28:37 +02:00
Florian Schade
0013836384 chore: cleanup unnecessary changes 2026-06-11 09:28:37 +02:00
Florian Schade
f1208cfa32 enhancement: make collaboration mention functionality public 2026-06-11 09:28:37 +02:00
Florian Schade
159785a3b5 enhancement: make collaboration font management functionality public 2026-06-11 09:28:37 +02:00
Benedikt Kulmann
283580d2a4 feat: add OxAppSuite config option for web (#2929) 2026-06-11 09:27:41 +02:00
Benedikt Kulmann
c270e72a14 feat: add OxAppSuite config option for web 2026-06-11 09:16:25 +02:00
Jannik Stehle
52ab8d3797 Merge pull request #2925 from opencloud-eu/chore/bump-web-7.2.0-beta.1
[full-ci] chore: bump web to v7.2.0-beta.1
2026-06-10 20:43:11 +02:00
Ralf Haferkamp
37f99ce186 Merge pull request #2871 from rhafer/sse-space-enabled
fix: Send SSE events for SpaceEnabled/Disabled to affected users
2026-06-10 17:12:29 +02:00
Ralf Haferkamp
fbbb03e5c7 fix: Send SSE events for SpaceEnabled/Disabled to affected users
Related: #2844
2026-06-10 13:17:05 +02:00