abp-multi-tenancy
ABP Multi-Tenancy - IMultiTenant interface, CurrentTenant, CurrentTenant.Change(), DataFilter.Disable(IMultiTenant), tenant resolution order, database-per-tenant. Use when working with multi-tenant features, tenant-specific data isolation, or switching tenant context.
Install
With your agent
Install OMGSkills skill "abpframework/abp:.claude/skills/abp-multi-tenancy" into this agent's normal skills directory: call the OMGSkills MCP get_install_plan tool for your agent and run the script it returns (it installs only the pinned commit and verifies SKILL.md), and stop if MCP or the pin is unavailable. Do not overwrite or change existing skills without asking me.
Manual command
git clone https://github.com/abpframework/abp /tmp/abp && ln -s /tmp/abp/.claude/skills/abp-multi-tenancy ~/.claude/skills/abp-multi-tenancy
From README
ABP Multi-Tenancy Docs: https://abp.io/docs/latest/framework/architecture/multi-tenancy Making Entities Multi-Tenant Implement IMultiTenant interface to make entities tenant-aware: Key points: TenantId is nullable - null means entity belongs to Host ABP automatically filters queries by current tenant ABP automatically sets TenantId when creating entities Accessing Current Tenant Use CurrentTenant property (available in base classes) or inject ICurrentTenant: Switching Tenant Context Use CurrentTenant.Change() to temporarily switch tenant (useful in host context): Important: Always use Change() with a using statement. Disabling Multi-Tenant Filter To query all tenants' data (only works with single database): Note: This doesn't work with separate databases per tenant.
More from this repo
abp-angular
ABP Angular UI patterns - generate-proxy, ListService, PermissionGuard, abpLocalization pipe, ConfirmationService,...
abp-app-nolayers
ABP Single-Layer (No-Layers / nolayers) application template - single project structure, feature-based file...
abp-application-layer
ABP Application Services, DTOs, CRUD service, object mapping (Mapperly/AutoMapper), validation, error handling.
