Repository navigation
Conversation
…ency with libre-graph-api
…pired and shareRemoved events, common config loading fix
feat(guestlinks)!: auth-guest service
This starts the guestlinks authprovider as part of the auth-guest service and wires it into the authregistry.
Replace the boolean authenticator result with a typed AuthenticationResult containing AuthenticationState (NotApplicable, Failed, Succeeded, Error) to distinguish between non-applicability, rejected credentials, and dependency failures. All existing authentication behavior remains observably unchanged.
guestlinks: implement auth-middleware for Guestlink cookies
Send guestlink emails
Bumps [github.com/open-policy-agent/opa](https://github.com/open-policy-agent/opa) from 1.19.1 to 1.21.1. - [Release notes](https://github.com/open-policy-agent/opa/releases) - [Changelog](https://github.com/open-policy-agent/opa/blob/main/CHANGELOG.md) - [Commits](open-policy-agent/opa@v1.19.1...v1.21.1) --- updated-dependencies: - dependency-name: github.com/open-policy-agent/opa dependency-version: 1.20.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Replace AUTH_GUEST_SESSION_JWT_SECRET with a key derived via HMAC-SHA256 from the reva JWT secret. Guest session tokens and reva access tokens remain unforgeable across each other without a second secret to configure.
…ub.com/open-policy-agent/opa-1.20.2 build(deps): bump github.com/open-policy-agent/opa from 1.19.1 to 1.21.1
Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.32.1 to 2.33.0. - [Release notes](https://github.com/onsi/ginkgo/releases) - [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md) - [Commits](onsi/ginkgo@v2.32.1...v2.33.0) --- updated-dependencies: - dependency-name: github.com/onsi/ginkgo/v2 dependency-version: 2.33.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…ub.com/onsi/ginkgo/v2-2.33.0 build(deps): bump github.com/onsi/ginkgo/v2 from 2.32.1 to 2.33.0
* api-test: extend search tests * adjust tets
They are merged onto the built-in defaults, the way the proxy's additional_policies and OC_ADD_RUN_SERVICES are, so the name says it: env variable, yaml key and field all carry the prefix. The two that take key:value entries are named in the plural like the other map-shaped settings in this repo, and the README says which of the three takes bare mime types.
Push based thumbnailer architecture
…p_events Feat/guestlinks spaceshare cleanup events
* tests: add acceptance tests for renewing guest links Cover renewing a guest link with and without a session, the PIN, rate limiting and the expiry of the session and the PIN. * tests: replay used PIN with its nonce in PIN-once scenario
feat(search): configurable query filter, leaves the personal space root and .space out by default
Conflicts: - opencloud/pkg/command/services.go, opencloud/pkg/init/structs.go, pkg/config/config.go, pkg/config/defaultconfig.go: keep the groupware and auth-api services next to auth-guest from main - services/proxy/pkg/config/defaults/defaultconfig.go: keep the collaboration routes from main and add the groupware and auth routes - go.mod, go.sum, vendor: use main and keep the module versions the groupware branch requires, then go mod tidy and go mod vendor
…ubmission and address book calls Identity/get and EmailSubmission were sent without urn:ietf:params:jmap:submission, and all address book calls were sent with the mail instead of the contacts capability. Stalwart rejects such calls with unknownMethod since 0.16.x, which breaks the account bootstrap (GET /groupware/accounts) and the address books. Also use the calendar type for creating, updating and deleting calendars (same capability, no change in behaviour).
…to 1.0.13 - jmaptest and opencloud_full: use Stalwart 0.16.27 and stalwart-cli 1.0.13 - use the BCP 47 locale "en-US" in the Stalwart configuration snapshots, Stalwart rejects "en_US" since 0.16.20 - TestGroupwareVacation: Stalwart 0.16.27 keeps isEnabled when other vacation properties change, expect true now - TestWs: Stalwart may return a different but equivalent newState when nothing changed, and announces new mail with EmailDelivery (since 0.16.16)
…the vCard type cell
2 of 6 tasks
Up to standards ✅🟢 Issues
|
The release pipeline also builds linux/386, where uint and int are 32 bits wide: comparing the days of the related emails filter with math.MaxInt64 and the 20 GB disk quota of the Stalwart test users didn't compile there. Also cap the days so that the time.Duration can't overflow.
…ntegration tests when there is no Docker
The headers were written in map iteration order, which made the HTTP dump tests flaky and the trace logs harder to compare.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Brings the
groupwarebranch up to date and upgrades Stalwart to the latest release:mainintogroupware(groupwarewas 887 commits behindmain). A merge instead of a rebase, sogroupwaredoesn't need a force push.opencloud/pkg/command/services.go,opencloud/pkg/init/structs.go,pkg/config/config.goandpkg/config/defaultconfig.go: both sides registered a new service at the same place (groupware/auth-apihere,auth-guestonmain), all are kept.services/proxy/pkg/config/defaults/defaultconfig.go: the collaboration routes frommainare kept (mainrestricted them in the meantime), the/groupwareand/authroutes are added.go.mod,go.sum,vendor:mainplus the 13 modules the groupware branch requires, pinned to exactly the versions used ongroupware(e.g.go-imapstays atv2.0.0-beta.5,gofakeitatv7.7.3), thengo mod tidyandgo mod vendor.unknownMethod, which breaks the account bootstrap (GET /groupware/accounts) and everything that uses address books:Identity/*andEmailSubmission/*were sent withouturn:ietf:params:jmap:submission(RFC 8621).AddressBook/*calls usedMailboxType, so they were sent with the mail instead of the contacts capability.CalendarEventType(same capability, no change in behaviour, only for consistency).TestObjectTypeNamespaces(fails without the fix).jmaptestandopencloud_full):"en_US"→"en-US"in the configuration snapshots (idmldap.json,jmap_stalwart.go,DEVELOPER.md). With the old value the account import fails (Invalid value Str("en_US") for enum type EnUS).TestGroupwareVacation: Stalwart 0.16.27 keepsisEnabledwhen other vacation properties change, the test asserted the old (buggy) behaviour.TestWs: Stalwart may return a different but equivalentnewStatewhen nothing changed (e.g.saeforn, both lead to the same changes and the same next state), and announces new mail withEmailDelivery(since 0.16.16).TestPhone(pkg/jscontact): expect the RFC 9553 phone featuremobileinstead of the vCard typecell(was failing ongroupwarebefore).groupwarebefore, the release pipeline also buildslinux/386):relatedEmailsFiltercompared auintwithmath.MaxInt64, and the Stalwart test users had a 20 GB quota asint. The days are now also capped so that thetime.Durationcan't overflow.TestGroupwareIndex,TestGroupwareVacation), using the samejmaptest.Skipconditions as the JMAP integration tests. In the CI they failed withrootless Docker not foundand a nil pointer panic in the cleanup.pkg/http): the headers were written in map iteration order, soTestDumpHttpResponse/TestDumpHttpRequestfailed randomly (failed in the CI once). They are written sorted by name now (go test ./pkg/http/ -count=50passes).Related Issue
Motivation and Context
groupwarewas based onmainfrom July and pinned to Stalwart 0.16.12. Newer Stalwart releases contain fixes the groupware apps need (sharing, vacation,Identity/get, address books), but they reject requests without the required capabilities and the old locale format, so upgrading needs the fixes above.How Has This Been Tested?
go build ./...USE_TESTCONTAINERS=false go test ./..., compared withmain: no new failures. Failing on both:pkg/log(TestDeprecation) andservices/search/pkg/opensearch(needs OpenSearch).go test -p 1 ./pkg/jmaptest/... ./services/groupware/...): all pass (TestAddressBooks,TestCalendars,TestContacts,TestEmails,TestEvents,TestSendingEmails,TestWs,TestGroupwareIndex,TestGroupwareVacation),TestWs3 out of 3 runs. Note: the integration test packages have to run with-p 1, otherwise both start a container namedstalwartat the same time.opencloud_fullsnapshot (idmldap.json) applied with stalwart-cli 1.0.13 to a fresh Stalwart 0.16.27: 17 created, 0 failed (the unchanged snapshot fails on the account locale).GET /groupware/andGET /groupware/accounts(identities, including the sharedprogrammers@example.orggroup account) for alan and maryidentity,move-fromandmove-to, mary receives it,markAsSeen, keywordsGOOS=linux GOARCH=386|arm|amd64|arm64 go build ./...CI=woodpecker go test ./services/groupware/...skips the integration tests, with Docker they passgolangci-lint2.13.2 with--new-from-rev=origin/groupwareonpkg/jmap,pkg/jmaptestandservices/groupware: only the existing missing doc comment hints (revive) on the changedNS_*/StalwartVersionlines, like all otherNS_*variables.Not part of this PR / known: updating and deleting address books and contacts still fails with
no supplier supports that id, because the JMAP suppliers (JmapAddressBookSupplier,JmapContactCardSupplier) don't implement update and delete yet. This was the same before this PR and is listed in the backend dependencies of opencloud-eu/web#3844.Screenshots (if appropriate):
n/a
Types of changes
Checklist: