@lsw-abpvue/tenant-management

The tenant management UI of the ABP Vue UI: the list, the connection string of a tenant, and the features it is given.
940 3
Install
npm install @lsw-abpvue/tenant-management
Latest Version:0.1.0
Vue:3
License:MIT
Last Updated:Oct 22, 2026
Links: GitHub  ·  npm
Maintainer: shiweiliang

@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

@lsw-abpvue/core

The kernel of the ABP Vue UI: dependency injection, application state, localizat...

1,373 3
@lsw-abpvue/utils

Framework-agnostic helpers for the ABP Vue UI. No dependencies, not even Vue.

1,306 3
@lsw-abpvue/components

The extension system of the ABP Vue UI: five extension points, the object extens...

1,295 3
@lsw-abpvue/theme-shared

The theme contract of the ABP Vue UI: twelve component interfaces, the state ser...

1,289 3
@lsw-abpvue/account-core

What the account pages and the theme both need, with no UI of its own: the tenan...

1,090 3

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