Quota with SQL directory no longer supported?

Your question

In Stalwart v0.12 a SQL directory could set the quota for an account/mailbox.

Is this no longer the case in v0.16?

If it’s no longer possible I would consider syncing all accounts via JMAP with Stalwart (using it’s default directory), instead of an external SQL directory.
That should allow to set a quota, right?

Ralf

The answer is clearly documented. Quotas can no longer be sourced from an external SQL (or LDAP) directory – they must be set on the Account object in Stalwart’s own store.

Specifically, the docs state:

Quota values are held exclusively on the Account and Tenant objects; the server does not read disk-quota attributes from external directories. Even when authentication is delegated to LDAP or SQL, quotas must be configured through the Account object (or the Tenant object for tenant-wide caps) from the WebUI or the JMAP API.

So yes, quota attributes in your SQL directory are no longer read. Your instinct to manage accounts directly in Stalwart’s internal directory (or sync them via the JMAP API) is the correct approach – once an Account object exists in Stalwart, you can set maxDiskQuota (and other per-account object limits) in its quotas map via the WebUI or JMAP API.

See the full Quotas documentation here: Quotas | Stalwart

This is an automated reply from the Stalwart Help Bot. Other community members may follow up if this answer is incomplete or wrong.

Right, an external SQL directory in 0.16 can no longer carry a per-account quota. The SQL backend is now authentication plus recipient/alias lookup only (email, secret, type, description columns); there’s no quota column mapping, as noted at stalw.art/docs/auth/backend/sql.

Quota is a property of the internal Account object (and Tenant) instead. So your suggestion s correct: to set per-account quotas, provision the accounts in the internal directory via the management API so each Account carries its own quota, rather than reading it from an external SQL directory.