When filtering users by role-assignment we now use the new ListRoleAssignmentsFiltered
request to the settings service instead calling ListRoleAssignments for every single user.
This reduces the number of network roundtrips to the settings service to one (was one per
user before).
Related Issue: #8938
When filtering by role assignment we now populate the
'appRoleAssignments' property of the returned users when the incoming
request contained and '$expand=appRoleAssignments'. This avoids having
to query the role assignments for all users in the result set a second
time.
The effect of this optimization depends a lot on the actual setup. In
single binary all-in-one installations it is rather small (this it saves
quite a few CPU cycles). In distributed setup it should be larger as it
reduces the number of network round trips to the settings service
significantly.
This adds the implementation for ListRolesAssignments by role-id to the
metadata backend. Because of the current layout of the account folders
and assignment files this is currently still very inefficient.
Related Issue: #8939
References: #9199 (feat: limit concurrent processing of thumbnail requests)
Content fix:
- If NO thumbnail is available, we return 404 (and not if it is avaialble)
- Make the resolution list multi-lined again for improved readbility
This massively decreases the size of the font file (~ 800kb -> 20kb) and therefore its loading time. The old `.ttf` format is still being kept as a fallback, though all modern browsers support the `woff2` format.
Adds a compression middleware to the web server to reduce the request size when delivering static files. This speeds up loading times in web clients.
The chi middleware we're using for this currently supports `gzip` as compression algorithm. We might want to extend this to support `br` (Brotli) in the future, since it's a newer and more performant algorithm.
* enhancement: introduce theme processing
* enhancement: introduce theme processing
* enhancement: add theme processing tests and changelog
* Update services/web/pkg/config/config.go
Co-authored-by: Michael Barz <michael.barz@zeitgestalten.eu>
* fix: ci findings
* Apply suggestions from code review
Co-authored-by: Martin <github@diemattels.at>
* enhancement: use the theme assets from web instead of having them inside the oCis repo (license clash Apache vs. AGPLv3)
* fix: golangci tagalign order
* fix: rename UnifiedRoleUploader to UnifiedRoleEditorLite
* fix: some typos
Co-authored-by: Michael Barz <michael.barz@zeitgestalten.eu>
* enhancement: export supported theme logo upload filetypes
* chore: bump reva
* fix: allow init func
---------
Co-authored-by: Michael Barz <michael.barz@zeitgestalten.eu>
Co-authored-by: Martin <github@diemattels.at>