xaf-multi-tenant

Implement multi-tenant database isolation for DevExpress XAF Blazor apps.

6|2|Updated Mar 3, 2026
One-click install
npx skills add https://github.com/kashiash/xaf-skills --skill xaf-multi-tenant
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: xaf-multi-tenant
Source: https://github.com/kashiash/xaf-skills/tree/main/xaf-multi-tenant
Command: npx skills add https://github.com/kashiash/xaf-skills --skill xaf-multi-tenant

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

XAF Multi-tenancy enables SaaS applications to serve multiple organizations with strict database isolation (separate DB per tenant) while sharing a single application codebase. It provides host UI for tenant administration and tenant UI for data access, backed by ITenantProvider and built-in tenant resolvers to route requests correctly.

Core Features & Use Cases

  • Separate DB per tenant for strong isolation and security.
  • Built-in tenant resolvers (TenantByEmailResolver, TenantByUserNameResolver) to determine the tenant from user identity.
  • ITenantProvider and per-tenant connection strings to route data access automatically.
  • Scoped services to avoid cross-tenant state and simplify per-tenant behavior.
  • Suitable for SaaS scenarios with per-tenant data partitioning, tenant onboarding, and admin roles management.

Quick Start

Add multi-tenancy to your XAF app by configuring AddMultiTenancy with a TenantResolver and migrate each tenant database.

Frequently Asked Questions about xaf-multi-tenant

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement multi-tenancy with separate databases per tenant in a Blazor app?

Multi-tenancy with database isolation uses ITenantProvider and per-tenant connection strings to route data access automatically. ITenantProvider routes data access automatically, ensuring each tenant interacts only with their dedicated database while sharing a single application codebase.

How does a tenant resolver determine the correct tenant database for a user?

Tenant resolvers like TenantByEmailResolver and TenantByUserNameResolver determine the tenant database by inspecting the user's identity. These built-in resolvers map user credentials to the correct tenant context, ensuring accurate data routing during login.

Can I use this multi-tenant architecture for Web API and WinForms clients alongside Blazor?

Yes, this multi-tenant architecture supports Blazor, WinForms, and Web API clients. The system provides a host UI for tenant administration and a tenant UI for data access, ensuring consistent per-tenant data isolation across different client platforms.

What is the best way to manage tenant onboarding and administration in a SaaS XAF application?

The best way to manage tenant onboarding is using the dedicated host UI for tenant administration. This host UI allows administrators to manage tenant onboarding, configure per-tenant connection strings, and apply database migrations for each tenant.

Do I need scoped services to prevent cross-tenant data leakage in XAF SaaS apps?

Yes, scoped services are required to prevent cross-tenant state leakage in XAF SaaS apps. Scoped services manage the tenant context per request, simplifying per-tenant behavior and ensuring strict data isolation between different organizations.