| Crates.io | armature-tenancy |
| lib.rs | armature-tenancy |
| version | 0.1.2 |
| created_at | 2025-12-27 02:02:25.584151+00 |
| updated_at | 2025-12-30 22:33:45.896099+00 |
| description | Multi-tenancy support for Armature applications |
| homepage | https://pegasusheavy.github.io/armature |
| repository | https://github.com/pegasusheavy/armature |
| max_upload_size | |
| id | 2006571 |
| size | 143,938 |
Multi-tenancy support for the Armature framework.
[dependencies]
armature-tenancy = "0.1"
use armature_tenancy::{TenantMiddleware, TenantResolver};
let tenant_middleware = TenantMiddleware::new(
TenantResolver::subdomain() // tenant.example.com
);
let app = Application::new()
.with_middleware(tenant_middleware)
.get("/data", |req| async move {
let tenant = req.tenant()?;
let data = fetch_tenant_data(&tenant.id).await?;
Ok(HttpResponse::ok().json(data))
});
TenantResolver::subdomain() // tenant.example.com
TenantResolver::header("X-Tenant-ID")
TenantResolver::path_prefix() // /tenant/api/...
let pool = TenantPool::schema_per_tenant(base_pool);
let pool = TenantPool::database_per_tenant(connections);
let pool = TenantPool::row_level(pool, "tenant_id");
MIT OR Apache-2.0