Skip to main content
Version: 3.2.0

Overview

The @abpjs/feature-management package provides a feature management interface for administrators to manage features for tenants and other entities. This is the React equivalent of Angular's @abp/ng.feature-management module.

npm version

New in v0.8.0

This package was introduced in ABP React v0.8.0.

Installation​

npm install @abpjs/feature-management

Required peer dependencies:

npm install @abpjs/core @abpjs/theme-shared

What are Features?​

In ABP Framework, Features are a way to enable/disable or configure functionality for tenants in a multi-tenant application. Common use cases include:

  • Enabling/disabling modules per tenant
  • Setting limits (e.g., max users, storage quota)
  • Configuring tenant-specific settings

Features​

  • Feature Modal - Ready-to-use modal for managing features
  • Toggle Features - Boolean on/off features
  • Text Features - Free text input features
  • Provider Support - Manage features for tenants and other entities

Main Exports​

Components​

ComponentDescription
FeatureManagementModalModal for managing features

Hooks​

HookDescription
useFeatureManagementHook for programmatic feature management

Services​

ServiceDescription
FeatureManagementServiceDirect API interaction

Models​

ModelDescription
FeatureManagement.FeatureFeature definition
FeatureManagement.ProviderProvider info (name and key)
FeatureManagement.ValueTypeFeature value type definition

Feature Providers​

ProviderKeyDescription
TTenant IDFeatures for a tenant

Quick Example​

import { FeatureManagementModal } from '@abpjs/feature-management';
import { useState } from 'react';

function TenantFeatures({ tenantId }: { tenantId: string }) {
const [visible, setVisible] = useState(false);

return (
<>
<button onClick={() => setVisible(true)}>
Manage Features
</button>

<FeatureManagementModal
providerName="T"
providerKey={tenantId}
visible={visible}
onVisibleChange={setVisible}
onSave={() => console.log('Features saved!')}
/>
</>
);
}

Integration with Tenant Management​

The feature management modal is commonly used alongside tenant management to configure tenant-specific features:

import { FeatureManagementModal } from '@abpjs/feature-management';
import { usePermission } from '@abpjs/core';

function TenantActions({ tenant }) {
const [showFeatures, setShowFeatures] = useState(false);
const { hasPermission } = usePermission();

// Check if user can manage features
const canManageFeatures = hasPermission(
'AbpTenantManagement.Tenants.ManageFeatures'
);

return (
<>
{canManageFeatures && (
<button onClick={() => setShowFeatures(true)}>
Features
</button>
)}

<FeatureManagementModal
providerName="T"
providerKey={tenant.id}
visible={showFeatures}
onVisibleChange={setShowFeatures}
/>
</>
);
}

NPM Package​

View on npm: @abpjs/feature-management

Documentation​