Multi-tenancy: the inbuxa-features crate, the permission ceiling and tenant disk quota (MT-12, MT-13, MT-14, MT-15, MT-16, MT-19, MT-20)

New crate crates/features (inbuxa-features), AGPL-3.0-only, holding the
tenancy rules. Hooks in common: a tenant's roles and permission lists cap
its people's permissions; a change to a tenant, or to a role a tenant holds,
drops its members' cached permissions; delivery and every other write check
the tenant's maxDiskQuota; usedDiskQuota reads the tenant usage counter.
The default Tenant Administrator role gains sysTenantGet and sysTenantQuery.
This commit is contained in:
2026-09-18 15:19:58 -07:00
parent b6b345a129
commit ad0db8b2b0
18 changed files with 1398 additions and 5 deletions
Generated
+17
View File
@@ -1330,6 +1330,7 @@ dependencies = [
"hyper",
"idna",
"imagesize",
"inbuxa-features",
"infer 0.22.0",
"jmap_proto",
"jsonwebtoken",
@@ -3955,6 +3956,20 @@ dependencies = [
"utils",
]
[[package]]
name = "inbuxa-features"
version = "0.16.22"
dependencies = [
"ahash",
"jmap_proto",
"registry",
"store",
"tokio",
"trc",
"types",
"utils",
]
[[package]]
name = "include-flate"
version = "0.3.4"
@@ -4212,6 +4227,7 @@ dependencies = [
"http_proto",
"hyper",
"hyper-util",
"inbuxa-features",
"jmap-tools",
"jmap_proto",
"mail-auth",
@@ -7751,6 +7767,7 @@ dependencies = [
"email",
"groupware",
"hkdf 0.13.0",
"inbuxa-features",
"jmap-tools",
"jmap_proto",
"mail-builder 1.0.0",