Skip to content

feat: [OCISDEV-531] add the vault capabilities endpoint support#584

Merged
2403905 merged 1 commit into
mainfrom
feat/OCISDEV-531
May 13, 2026
Merged

feat: [OCISDEV-531] add the vault capabilities endpoint support#584
2403905 merged 1 commit into
mainfrom
feat/OCISDEV-531

Conversation

@2403905
Copy link
Copy Markdown

@2403905 2403905 commented May 6, 2026

When CapabilitiesVault.Enabled is true, GET /ocs/v2.php/cloud/capabilities?vault=true returns a modified response with public sharing and federation sharing disabled.

When CapabilitiesVault.Enabled is true, GET /ocs/v2.php/cloud/capabilities?vault=true
returns a modified response with public sharing and federation sharing disabled.
@2403905 2403905 force-pushed the feat/OCISDEV-531 branch from 1e97e42 to 53854d3 Compare May 12, 2026 09:13
@2403905 2403905 requested a review from jvillafanez May 12, 2026 13:01
@2403905 2403905 requested review from jvillafanez May 12, 2026 14:24
@jvillafanez
Copy link
Copy Markdown
Member

Would it be better if we consider some kind of space-type capabilities? Something like "spaces.personal.sharing.public.enabled = true" and "spaces.vault.sharing.public.enabled = false". If vault isn't enabled in the server, there won't be a "space.vault" key, so the client can use that to detect whether the vault is enabled or not.

We'd need to plan to migrate to the "space.personal", but we could also use the current capabilities as a fallback

There are a couple of advantages:

  • Clients can access to the new capabilities without big changes. The endpoint is the same and it will contain everything available.
  • Those keys can be extended if needed. In theory, we could include capabilities per space. The space with id "abc-123" (if we decide to identify the spaces by id) could have its own capabilities.
    • If this could be a thing, we might consider using "spaces.personal.personal.sharing.public..." instead since we probably would want the "spaces.personal.*" spaces to inherit the capabilities from the "spaces.personal.personal" one.
  • If we don't want to expose vault capabilities to "not-authorized-enough" users, we could also check for 2FA before populating the vault information.

@LukasHirt
Copy link
Copy Markdown

Would it be better if we consider some kind of space-type capabilities?

This feels to me like it could grow cumbersome pretty quickly in case we introduce non-space vault related capability. Example: we are now providing different themes for vault and even though we just handle it in the frontend now, we might handle this in the future in capabilities as well which would then mean having:

  • space.xxx
  • space.vault.xxx
  • themes.xxx
  • themes.vault.xxx

And if something else comes it just keeps growing.

Clients can access to the new capabilities without big changes. The endpoint is the same and it will contain everything available.

I would consider adding the extra param into the endpoint actually easier change compared to now accessing space capabilities with a new nested key. Also, this would be backwards compatible. If we'd change how we access existing capabilities, running clients with older versions would break.

@2403905 2403905 merged commit 7efe454 into main May 13, 2026
13 checks passed
@2403905 2403905 deleted the feat/OCISDEV-531 branch May 13, 2026 11:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants