@lsw-abpvue/tenant-management
| Install | |
|---|---|
npm install @lsw-abpvue/tenant-management |
|
| Latest Version: | 0.1.0 |
| Vue: | 3 |
| License: | MIT |
| Last Updated: | Oct 22, 2026 |
| Links: | GitHub · npm |
@lsw-abpvue/tenant-management
Tenant management for Lsw.Abp.VueUI, an unofficial Vue UI for the ABP Framework.
pnpm add @lsw-abpvue/tenant-management
Two entry points, loaded at different times:
// main.ts: the menu, at startup
import { provideTenantManagementConfig } from '@lsw-abpvue/tenant-management/config';
provideTenantManagementConfig();
// routes.ts: the page, on the first navigation into /tenant-management
import { lazyRoutes } from '@lsw-abpvue/core/router';
lazyRoutes('/tenant-management', () =>
import('@lsw-abpvue/tenant-management').then(module => module.createTenantManagementRoutes()),
);
What it is
/tenant-management/tenants, built on the extension system the same way the identity
pages are: the columns, the create and edit fields, the row buttons and the toolbar are
all contributors, and the module's own are registered first.
| Tenants | list, create with an administrator, edit, delete |
| Features | through @lsw-abpvue/feature-management, from a row button |
| Connection string | its own database, or the shared one, from a row button |
A new tenant is asked for an administrator's address and password; an existing one is not, because by then it has users of its own. That is the whole of the difference between the create and the edit form, and both are contributor lists a host can add to.
The connection string
AbpTenantManagement.Tenants.ManageConnectionStrings opens a dialog with the two states
the backend has: the shared database, or one of this tenant's own. Ticking "use the
shared database" deletes the connection string rather than saving an empty one, which is
what the endpoint is for.
Compared with the Angular UI
Same component key, same contributor tokens, same route and policy names, same localization keys. What differs:
| Angular | Here |
|---|---|
| No connection string UI, though the endpoints, the permission and the localization keys are all in the open source module | A dialog behind the permission ABP defines for it |
AbpTenantManagement::Edit / Delete / AreYouSure, which the backend has no key for |
AbpUi::Edit / Delete / AreYouSure, which it does |
The contributor record is typed against TenantCreateDto on one form and TenantUpdateDto on the other, and the page then casts |
One TenantDto contributor type; the request body is assembled at save |
A leftover handler focuses an element named defaultConnectionString that no template renders |
Gone with the dialog that gives it something to focus |
Registered in the design documents' api-parity-map.md.
Licence
MIT.
Related Packages
The kernel of the ABP Vue UI: dependency injection, application state, localizat...
Framework-agnostic helpers for the ABP Vue UI. No dependencies, not even Vue.
The extension system of the ABP Vue UI: five extension points, the object extens...
The theme contract of the ABP Vue UI: twelve component interfaces, the state ser...
What the account pages and the theme both need, with no UI of its own: the tenan...
Version History
| Version | Released | Vue | License |
|---|---|---|---|
| 0.1.0 | ^3.5.0 | MIT |
Pre-releases (6)
| Version | Released | Vue | License |
|---|---|---|---|
| 0.0.1-alpha.5 | ^3.5.0 | MIT | |
| 0.0.1-alpha.4 | ^3.5.0 | MIT | |
| 0.0.1-alpha.3 | ^3.5.0 | MIT | |
| 0.0.1-alpha.2 | ^3.5.0 | MIT | |
| 0.0.1-alpha.1 | ^3.5.0 | MIT | |
| 0.0.1-alpha.0 | ^3.5.0 | MIT |