Set Default Storage Quotas by User Role in ownCloud oCIS

To assign a storage quota automatically in ownCloud Infinite Scale (oCIS), add a role_quotas mapping to the Proxy service’s proxy.yaml configuration. Map each oCIS role ID to a quota in bytes, then restart the Proxy service. This setting assigns quotas to new users according to their role; it is not an environment variable and changing it should not be treated as an update to existing accounts. The current ownCloud 8.2 documentation describes this role-based method in the Proxy service configuration.

Confirm that role-based quotas fit your setup

Use this method when users receive an oCIS role during first login and you want new users in different roles to start with different personal storage limits. For example, a standard account could receive 10 GiB and a higher-capacity role could receive 50 GiB. Your identity provider can map its claims to oCIS roles, or the Proxy’s default role assignment can assign the user role to users who do not already have one.

Do not confuse a user’s personal storage quota with a Space quota. A Space quota sets capacity for a Space, while OCIS_SPACES_MAX_QUOTA sets the global maximum allowed for Spaces. ownCloud documents that Space capacity is independent of storage quota and that a Space can have a quota larger than the underlying storage capacity. For details, see the official Spaces quota documentation and the Storage-Users configuration reference.

Before editing, identify the role IDs used by your own instance and decide the limit for each. Role names such as user and guest are useful for role assignment, but the quota map expects role IDs. There is no universal ID to copy from this example. Also check whether users already receive roles through OIDC or a provisioning workflow; quota rules only help when the user is assigned a matching role.

1. Find and back up the Proxy configuration

Locate the configuration directory used by your deployment and back up its existing proxy.yaml. In a package-based installation it may be under /etc/ocis; container deployments can mount a different directory. Use the path mounted into the Proxy container or specified by your deployment configuration rather than assuming every installation uses the same location.

A terminal command opens the proxy.yaml configuration file in an editor.

Keep the existing file’s other settings. If it already contains role_quotas: {}, replace that empty mapping. Do not add a second top-level role_quotas key: duplicate YAML keys can be parsed inconsistently. If the file does not contain the key, add it at the top level, aligned with other top-level Proxy settings.

2. Add quota values in bytes

The Proxy expects integer quota values in bytes. For this example, 10 GiB equals 10,737,418,240 bytes and 50 GiB equals 53,687,091,200 bytes. The numbers 1001 and 1002 below are sample role IDs only; replace them with IDs from your own oCIS installation.

The proxy.yaml editor shows a role_quotas mapping with example role IDs and byte-based quota values.
role_quotas:
  1001: 10737418240
  1002: 53687091200

Indent each role entry consistently beneath role_quotas. Keep the values as whole byte counts rather than writing strings such as 10GB. If you already use a role_assignment section, it can remain in the same file; the quota map is a separate top-level setting.

3. Make sure new users receive a matching role

With the default role-assignment driver, a user without an existing role receives user at first login. If all new users should receive one limit, map the ID of that role to the desired quota. If quotas differ by user category, configure role assignment so each category maps to the correct oCIS role, then add the ID for every role to role_quotas.

A conceptual identity-provider diagram shows an OIDC role claim mapped to an ownCloud role for new users.

For OIDC, the Proxy can read a roles claim and map claim values to oCIS role names in proxy.yaml. The claim name and mappings must match what the identity provider actually issues. The documented default claim is roles; the default mappings include ocisAdmin, ocisSpaceAdmin, ocisUser, and ocisGuest. If you customize these mappings, check the role assignment examples and constraints. In particular, each account receives a single role, and an OIDC user whose claims do not match any configured role mapping may be unable to log in. Test claim changes in a non-production account first.

4. Restart Proxy and verify with a new account

Validate the YAML syntax with your deployment’s configuration checks, if available, then restart the Proxy service or the full oCIS deployment according to your service manager. The Proxy must load the updated file before a new user receives the rule. Avoid restarting unrelated services unless your deployment requires it.

A generic upload test panel shows a 4.2 GB file upload and 46.8 GB remaining from a 50 GB quota.
  1. Create a disposable test user that has not logged in to this oCIS instance before, or use a non-production account workflow that provisions a genuinely new user.
  2. Confirm that its assigned role ID is one of the keys in role_quotas. For an OIDC setup, inspect the issued role claim and the Proxy’s role mapping.
  3. Sign in and check the reported personal quota, where the client exposes it. Upload a small test file, then in a test environment attempt an upload that would exceed the remaining quota. Confirm that the first upload succeeds and the over-limit upload is rejected.

A user who existed before the change is not a valid test of the new-user assignment path. If the test account gets the wrong limit, check the role ID rather than the display name, the role assigned at first login, the active proxy.yaml path, and whether the Proxy was restarted. Keep the backup until new-account provisioning and uploads behave as expected.

What this configuration does not change

The documented role-quota mapping is an onboarding rule for new users. It does not by itself establish a Space capacity policy or prove that already-provisioned users have been updated. Manage existing accounts and Space limits through the supported administration path for your deployment. Also keep the total assigned quotas realistic for the storage capacity behind oCIS: a quota is an allocation limit, not extra disk or object-storage capacity.

Leave a Comment

Set Default Storage Quotas by User Role in ownCloud oCIS

Set Default Storage Quotas by User Role in ownCloud oCIS

Assign byte-based storage limits to new ownCloud Infinite Scale users by role, with a proxy.yaml example and a safe verification checklist.

Fix ownCloud Sync Certificate Errors at the TLS Source

Fix ownCloud Sync Certificate Errors at the TLS Source

Restore ownCloud desktop syncing by checking the server hostname, certificate chain, private CA trust, and captive portal issues without disabling TLS verification.

Clear an ownCloud Integrity Warning After an Upgrade

Use the invalid-file report to identify mismatched core files or app signatures, restore the correct release files, and verify the integrity check safely.

Install ownCloud Infinite Scale with Docker Compose

Deploy ownCloud Infinite Scale from its official Compose example, configure domains and persistent storage, then verify TLS, containers, and first login.

Configure S3 Blob Storage for ownCloud Infinite Scale

Configure S3 Blob Storage for ownCloud Infinite Scale

Set up the S3NG driver, bucket permissions, persistent metadata storage, and upload sizing so ownCloud Infinite Scale can store file contents reliably.

When ownCloud Uploads Stall at 99%, Check These Limits

When ownCloud Uploads Stall at 99%, Check These Limits

Find why an ownCloud Server upload stops near completion by checking file status, quota, temporary disk space, PHP limits, and proxy timeouts.

Clear the ownCloud Apache .htaccess Warning Safely

Clear the ownCloud Apache .htaccess Warning Safely

Set AllowOverride All only for ownCloud’s web root, validate the active Apache vhost, and reload safely to restore .htaccess rules.

Set Up ownCloud Enterprise Auditing and Verify the Logs

Enable ownCloud’s Enterprise Auditing app, route admin_audit events to a protected log file, and confirm that real user actions are being recorded.

Connect ownCloud Infinite Scale to Keycloak with OIDC

Connect ownCloud Infinite Scale to Keycloak with OIDC

Align Keycloak’s realm issuer, web client, and user claims to let ownCloud Infinite Scale sign users in reliably across the web and mobile clients.

Move ownCloud Files to a New Owner Without Losing Shares

Transfer owned files and outgoing shares with ownCloud’s occ command, understand what stays behind, and verify access before deleting the old account.