Commit Graph

22907 Commits

Author SHA1 Message Date
Pascal Bleser
e3e58e28c1 groupware: blob streaming (upload and download) 2026-04-13 16:39:51 +02:00
Pascal Bleser
3fd0661eb7 groupware: more JMAP operations implementation 2026-04-13 16:39:51 +02:00
Pascal Bleser
bb99be8732 groupware: further implementation and improvements 2026-04-13 16:39:51 +02:00
Pascal Bleser
b408f895ae upgrade Stalwart to 0.13.2 2026-04-13 16:39:51 +02:00
Pascal Bleser
ff579adc3b refactored the Session object, refactored the services/groupware directory, and started Swagger documentation implementation 2026-04-13 16:39:51 +02:00
Pascal Bleser
975ce31d56 groupware: refactoring the API mechanisms 2026-04-13 16:39:51 +02:00
Pascal Bleser
c093527c3d groupware: implement JSON:API's error response format, with a revamped error handling in jmap and services/groupware 2026-04-13 16:39:51 +02:00
Pascal Bleser
2c1ccbb22e 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-04-13 16:39:51 +02:00
Pascal Bleser
cff4f55633 Groupware and jmap: cleanup and API documentation 2026-04-13 16:39:51 +02:00
Pascal Bleser
241fd4aa70 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-04-13 16:39:51 +02:00
Pascal Bleser
9271e25d38 opencloud_full: upgrade Stalwart to 0.12.5, and use the ghcr.io container repository to avoid Hub limits 2026-04-13 16:39:51 +02:00
Pascal Bleser
2f582858b5 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-04-13 16:39:51 +02:00
Pascal Bleser
da824a4037 fix Stalwart LDAP configuration 2026-04-13 16:39:51 +02:00
Pascal Bleser
ea45bcff64 Use password policy overlay in LDAP and configure Stalwart to use it 2026-04-13 16:39:51 +02:00
Pascal Bleser
2a8681b401 upgrade Stalwart to 0.12.4 2026-04-13 16:39:51 +02:00
Pascal Bleser
1c0f38f291 groupware: removed debugging logs 2026-04-13 16:39:51 +02:00
Pascal Bleser
72ac728c73 jwkset: remove debugging printlns 2026-04-13 16:39:51 +02:00
Pascal Bleser
1f2764c83c auth-api: fix: was missing newly introduced metrics 2026-04-13 16:39:51 +02:00
Pascal Bleser
3998c7fffd groupware and jmap improvements and refactoring 2026-04-13 16:39:51 +02:00
Pascal Bleser
f59d44a5b5 upgrade Stalwart to 0.12 2026-04-13 16:39:51 +02:00
Pascal Bleser
a99f2270bf minor corrections to the Stalwart configuration 2026-04-13 16:39:51 +02:00
Pascal Bleser
75f814fda2 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-04-13 16:39:50 +02:00
Pascal Bleser
1e2e2b46df add an auth-api service to make an exemplary implementation of an external authentication API for third party services such as Stalwart 2026-04-13 16:39:50 +02:00
Pascal Bleser
dc73c8d7b1 move services/groupware/pkg/jmap to pkg/jmap 2026-04-13 16:39:50 +02:00
Pascal Bleser
1f4f0ff601 WIP: restructure the Jmap client, and implement the /me/messages Graph API endpoint with it 2026-04-13 16:39:50 +02:00
Pascal Bleser
bac50f4edb 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-04-13 16:39:50 +02:00
Pascal Bleser
39f224024a 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-04-13 16:39:50 +02:00
Pascal Bleser
bc88bc7217 add missing routing for /groupware (currently unprotected for testing) 2026-04-13 16:39:50 +02:00
Pascal Bleser
1aedde8de6 WIP: initial implementation of the groupware service 2026-04-13 16:39:50 +02:00
Pascal Bleser
2dc96b179c Add Stalwart container to the opencloud_full deployment, using the OpenLDAP container as a directory for user authentication 2026-04-13 16:39:50 +02:00
dependabot[bot]
113de08e28 build(deps-dev): bump dotenv from 16.4.7 to 17.4.2 in /services/idp
Bumps [dotenv](https://github.com/motdotla/dotenv) from 16.4.7 to 17.4.2.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v16.4.7...v17.4.2)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-version: 17.4.2
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 15:27:26 +02:00
Ralf Haferkamp
233ff383e7 chore: bump IDP javascript dependencies 2026-04-13 12:01:52 +02:00
dependabot[bot]
b78d3ed42b build(deps): bump github.com/nats-io/nats.go from 1.49.0 to 1.50.0
Bumps [github.com/nats-io/nats.go](https://github.com/nats-io/nats.go) from 1.49.0 to 1.50.0.
- [Release notes](https://github.com/nats-io/nats.go/releases)
- [Commits](https://github.com/nats-io/nats.go/compare/v1.49.0...v1.50.0)

---
updated-dependencies:
- dependency-name: github.com/nats-io/nats.go
  dependency-version: 1.50.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 09:53:48 +02:00
dependabot[bot]
d029201b83 build(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc
Bumps [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://github.com/open-telemetry/opentelemetry-go) from 1.42.0 to 1.43.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.42.0...v1.43.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc
  dependency-version: 1.43.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 09:52:58 +02:00
opencloudeu
b9ed197a23 [tx] updated from transifex 2026-04-12 00:05:15 +00:00
Ralf Haferkamp
9cfe4dadb6 bump reva to get TenantAPI service 2026-04-09 17:46:50 +02:00
Ralf Haferkamp
d9f39773e7 proxy: add memory cache for tenant id mapping
This is to reduce the number of "proxy->gateway->users->ldap" roundtrips
for the tenant id mapping.

The cache currently has a non-configurable ttl of 10 min.

Related: #2310
2026-04-09 17:46:50 +02:00
Ralf Haferkamp
a931e53c26 proxy: Allow mapping from an external tenant id to the internal id
When the tenant id coming in via the OIDC claims doesn't match the
tenant id on the provisioned user, a mapping can be configured and
resolved via the reva TenantAPI service (now started as part of the
"users" service).

Closes: #2310
2026-04-09 17:46:50 +02:00
Ralf Haferkamp
b8c4f581fb chore: bump reva to latest main 2026-04-08 11:45:37 +02:00
dependabot[bot]
4c86d2a289 build(deps): bump golang.org/x/image from 0.36.0 to 0.38.0
Bumps [golang.org/x/image](https://github.com/golang/image) from 0.36.0 to 0.38.0.
- [Commits](https://github.com/golang/image/compare/v0.36.0...v0.38.0)

---
updated-dependencies:
- dependency-name: golang.org/x/image
  dependency-version: 0.38.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-08 10:18:43 +02:00
Jannik Stehle
c9a41a4bfd Merge pull request #2555 from pedropintosilva/feat/enable-insert-remote-file
feat: enable EnableInsertRemoteFile WOPI flag for Collabora
2026-04-08 10:00:46 +02:00
dependabot[bot]
369d03d532 build(deps-dev): bump css-minimizer-webpack-plugin in /services/idp
Bumps [css-minimizer-webpack-plugin](https://github.com/webpack/css-minimizer-webpack-plugin) from 7.0.4 to 8.0.0.
- [Release notes](https://github.com/webpack/css-minimizer-webpack-plugin/releases)
- [Changelog](https://github.com/webpack/css-minimizer-webpack-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/css-minimizer-webpack-plugin/compare/v7.0.4...v8.0.0)

---
updated-dependencies:
- dependency-name: css-minimizer-webpack-plugin
  dependency-version: 8.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-07 14:10:08 +02:00
dependabot[bot]
9123e88f10 build(deps): bump github.com/go-ldap/ldap/v3 from 3.4.12 to 3.4.13
Bumps [github.com/go-ldap/ldap/v3](https://github.com/go-ldap/ldap) from 3.4.12 to 3.4.13.
- [Release notes](https://github.com/go-ldap/ldap/releases)
- [Commits](https://github.com/go-ldap/ldap/compare/v3.4.12...v3.4.13)

---
updated-dependencies:
- dependency-name: github.com/go-ldap/ldap/v3
  dependency-version: 3.4.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-07 14:06:25 +02:00
Ralf Haferkamp
87a9660157 adr: Add thoughts about guest users (#2183)
* adr: Add thoughts about guest users

The approach to take has not been decide yet. This just reflects
the current research/concept work.

* adr(guests): incorporate review feedback

* Mark ADR as postponed for now

We'd like to go for a more light-weight approach as discussed in:
https://github.com/opencloud-eu/opencloud/issues/2513
2026-04-07 13:18:56 +02:00
dependabot[bot]
4a7d06fbd3 build(deps): bump github.com/open-policy-agent/opa from 1.14.1 to 1.15.0 (#2535)
Bumps [github.com/open-policy-agent/opa](https://github.com/open-policy-agent/opa) from 1.14.1 to 1.15.0.
- [Release notes](https://github.com/open-policy-agent/opa/releases)
- [Changelog](https://github.com/open-policy-agent/opa/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-policy-agent/opa/compare/v1.14.1...v1.15.0)

---
updated-dependencies:
- dependency-name: github.com/open-policy-agent/opa
  dependency-version: 1.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 09:09:08 +02:00
opencloudeu
c7d920c212 [tx] updated from transifex 2026-04-07 00:05:34 +00:00
opencloudeu
9a6a99cd8c [tx] updated from transifex 2026-04-05 00:05:39 +00:00
Ralf Haferkamp
33f45fa965 feat(multi-tenancy): verify tenant via OIDC claim
When multi-tenancy is enable we now allow to specify an OIDC claim
against which the tenantid of the user resolved via CS3 apis is matched.

Partial: #2310
2026-04-02 16:10:53 +02:00
Ralf Haferkamp
a1d4e86b96 devtools: sync csp.yaml with opencloud-compose repo 2026-04-02 16:10:53 +02:00
opencloudeu
9e615837c6 [tx] updated from transifex 2026-04-02 00:05:58 +00:00