Commit graph

12 commits

Author SHA1 Message Date
Enrique Pérez Arnaud
3956c4e9be
feat(cloud_federation_api): accept new protocol envelope and delegate validation
Accept both the legacy options.sharedSecret envelope and the new
protocol[name].sharedSecret form. Preserve the original cloud ID so the
factory can discover capabilities, then reset shareWith to the local
username for user lookup.

Delegate per-protocol validation to providers via the new
IValidationAwareCloudFederationProvider interface, with split exception
handling: BadRequestException -> 400, ProviderCouldNotAddShareException
-> the exception's own HTTP status (501 fallback).

In the notification handler, fall back to looking up the refresh token
via OcmTokenMapMapper when the access token cannot identify the federation.

Co-authored-by: Micke Nordin <kano@sunet.se>
Signed-off-by: Micke Nordin <kano@sunet.se>
Signed-off-by: Enrique Pérez Arnaud <enrique@cazalla.net>
2026-06-17 11:01:13 +02:00
Enrique Pérez Arnaud
789ff6a8a3
feat(cloud_federation_api): add token exchange endpoint issuing JWT access tokens
Co-authored-by: Micke Nordin <kano@sunet.se>
Signed-off-by: Micke Nordin <kano@sunet.se>
Signed-off-by: Enrique Pérez Arnaud <enrique@cazalla.net>
2026-06-17 11:01:11 +02:00
Micke Nordin
a171fbf318 fix(cloud-federation-api): align inviteAccepted parameter naming with spec
- Rename method parameter from `userId` to `userID`.
- Update log message and `setRecipientUserId` call to use new variable.
- Without this change, we can not accept invites.

Signed-off-by: Micke Nordin <kano@sunet.se>
2025-10-27 12:28:09 +01:00
Micke Nordin
623f2f0240
feat(OCM-invites): Implementation of invitation flow
This patchset:
* implements the /invite-accepted endpoint
* adds capabilities and inviteAceptDialog to the discovery
* adds a FederatedInviteAcceptedEvent

https://cs3org.github.io/OCM-API/docs.html?branch=v1.1.0&repo=OCM-API&user=cs3org#/paths/~1invite-accepted/post

Co-authored-by: Anna <anna@nextcloud.com>
Co-authored-by: Côme Chilliet <come.chilliet@nextcloud.com>
Co-authored-by: Joas Schilling <213943+nickvergessen@users.noreply.github.com>
Co-authored-by: Navid Shokri <navid.pdp11@gmail.com>
Signed-off-by: Micke Nordin <kano@sunet.se>
2025-06-12 11:20:26 +02:00
Ferdinand Thiessen
b9f9190894
fix(ocm): publicKey can be disabled so capabilities do not match
When the public key feature is disabled null is returned for
`publicKey`. So in this case we need to adjust the capabilities
and return type of `jsonSerialize()`.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-03-21 09:15:55 +01:00
Maxence Lange
4591430c9c feat(ocm): signing ocm requests
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2024-12-04 09:30:55 -01:00
Joas Schilling
15a530008f
fix(federation): Return the used userID to allow the inviting server to react to the famous mapUid result
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-13 14:30:16 +02:00
provokateurin
32de958259
chore(deps): Update openapi-extractor
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-07-02 09:08:04 +02:00
Maxence Lange
8b9e7e235d ocm controller
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-09-20 08:23:45 -01:00
jld3103
5b6c48f8c7
cloud_federation_api: Fix OpenAPI spec
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-07-13 10:38:14 +02:00
jld3103
6843bcd029
cloud_federation_api: Add OpenAPI spec
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-07-13 07:20:55 +02:00
jld3103
4218f719ea
Add OpenAPI specs
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-05-24 16:51:38 +02:00