Repository navigation
Conversation
The drive item name was derived from the resource path. Space roots
have no path ("."), so e.g. the sharedByMe response reported "." as
the name of a shared project space. Use the name provided by the
storage provider and fall back to the base of the path if it is empty.
Adjust the sharedByMe acceptance scenario for link shares of a
project space accordingly: the space root item now carries the name of
the space.
fix(graph): report the space name instead of "." for space roots in sharedByMe
Updating a drive with an empty name ("name": "") succeeded and silently
kept the old name, because the name was only validated when it was
non-empty. Validate it whenever the request contains it, so an empty
name is rejected with 400 like on create. A request without a name, or
with "name": null, still leaves the name unchanged.
Space names were trimmed with strings.TrimSpace, which only removes
Unicode whitespace. Invisible formatting characters such as the
zero-width space (U+200B), the word joiner (U+2060) or the byte order
mark (U+FEFF) aren't whitespace, so a name made only of them was
accepted on create and on update, and showed up as an empty name in
every client. Trim these characters from both ends of the name as
well. Inside a name they are still allowed, since some of them are
needed there, e.g. the zero-width joiner in emoji sequences.
Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 112 |
🟢 Coverage 70.90% diff coverage · +0.62% coverage variation
Metric Results Coverage variation ✅ +0.62% coverage variation (-1.00%) Diff coverage ✅ 70.90% diff coverage Coverage variation details
Coverable lines Covered lines Coverage Common ancestor commit (d7e5b97) 93654 26992 28.82% Head commit (498979b) 93993 (+339) 27673 (+681) 29.44% (+0.62%) Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch:
<coverage of head commit> - <coverage of common ancestor commit>Diff coverage details
Coverable lines Covered lines Diff coverage Pull request (#3956) 409 290 70.90% Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified:
<covered lines added or modified>/<coverable lines added or modified> * 100%
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
…rmission feat(graph): add GET endpoints for single sharing permissions
…-name fix(graph): reject empty and invisible drive names on update
Log the error text with every permission failure, at debug and error level, and the texts of both errors when a fallback returns a different error than the first attempt. Log gateway selection failures in the share helpers at error level with the request id and, where available, the permission id, so they can be matched with the entry of the calling operation. Use constants for the log keys, the recipient types and the tracer name, log the space type of unsupported spaces and the user id of the shared by me listing, and log an unknown permission type when deleting. Assisted-by: Claude Code:claude-opus-5-5
Publish the spaces.server_managed capability, driven by the OC_CLAIM_MANAGED_SPACES_ENABLED setting, so that clients can block adding and removing users to and from spaces.
Refine the description of the OC_CLAIM_MANAGED_SPACES_ENABLED setting and add a section to the frontend README that explains what it does.
Assert that the spaces.server_managed capability follows the OC_CLAIM_MANAGED_SPACES_ENABLED setting for both values.
…-and-tracing feat(graph): improve logging and tracing for drive item permissions
Without $expand=memberOf, GET /me built the user from the CS3 user of the request context. That user doesn't know the identities the user signed in with, so identities[].issuerAssignedId contained the internal user ID instead of the subject assigned by the identity provider, which the identity backend stores when the user is provisioned. Only requests with $expand=memberOf read the user from the identity backend and returned the correct value. GET /me now always reads the user from the identity backend. The group memberships are still only looked up when $expand=memberOf asks for them, so a plain /me costs one more user lookup in the identity backend. This changes the response of a plain GET /me in two cases: - users for whom the identity backend has no stored identity, e.g. users created through the API rather than signed in through an identity provider, get no identities at all, instead of one that wrongly carried the internal user ID - when the identity backend doesn't know the user, /me answers with its error (e.g. 404 instead of 200 with a model built from the request context) A failing identity backend is now logged at error level, a user it doesn't know at debug level. PERFORMANCE: every plain GET /me now runs one search in the identity backend (LDAP), where it used to need none. Assisted-by: Claude Code:claude-opus-5-5
feat(frontend): add server managed spaces capability
fix(graph): return the identities of the identity backend on /me
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.
Tracks the work packages that land on
workpagagesbefore they go to main. Stays a draft until the work packages are done. We merge main intoworkpagagesregularly to keep the diff small.So far:
Open against
workpagages:AI assistance: Claude Code (claude-opus-5-5) merged main into the branch and drafted this description.