v4.0.0
Release Date: February 2026
This release completes the proxy service migration started in v3.2.0. Legacy services are now formally deprecated (to be removed in v5.0), Identity.State and other state interfaces now reference proxy DTOs directly, extension contributor types are updated to use proxy DTOs, and several API return types have been improved.
Highlights
- Legacy services deprecated -
IdentityService,SaasService,LanguageManagementService,AuditLoggingService, and others are deprecated in favor of proxy services introduced in v3.2.0 - State types migrated to proxy DTOs -
Identity.State,LanguageManagement.State, and other state interfaces now reference proxy DTOs - Extension contributors use proxy DTOs - All extension contributor callback types across saas, audit-logging, and other packages now use proxy DTOs
- Improved pagination -
LanguageService.getList()now returnsPagedResultDtowithtotalCount - New admin settings module -
@abpjs/account-proadds a full admin settings module with captcha, external providers, and recaptcha services - New file upload config -
@abpjs/file-managementaddsxsrfHeaderNameconfig option - Deprecation timeline extended - All deprecated types previously marked "removed in v4.0" are now "removed in v5.0"
Breaking Changes
@abpjs/core
EnvironmentService.getApiUrl()signature changed - Now accepts an optionalapiNameparameter with default value instead of relying on overloadsFeatureManagementModule,PermissionManagementModuleremoved - These were removed from core. Use the standalone packages directly.authGuard$removed - UseauthGuard(non-observable) instead
@abpjs/identity-pro
Identity.Statenow uses proxy DTOs - All fields (roles,users,selectedRole,selectedUser,selectedUserRoles,claims,selectedClaim) now referenceIdentityRoleDto,IdentityUserDto,ClaimTypeDtoinstead of legacy namespace typesclaimTypesremoved fromIdentity.State- Use theclaimsfield (PagedResultDto<ClaimTypeDto>) instead
@abpjs/permission-management
PermissionManagementServiceremoved - UsePermissionsServicefrom proxy instead- 7 legacy namespace types removed from
PermissionManagementnamespace usePermissionManagementhook types changed - Uses proxy DTOs
@abpjs/tenant-management
TenantManagementServiceremoved - UseTenantServicefrom proxy insteadupdateTenantsignature changed - Now takes(id, body)instead of single objectfetchTenantsandcreateTenantparam types changed - Use proxy DTOs
@abpjs/audit-logging
AuditLoggingServiceandEntityChangeServiceremoved - UseAuditLogsServicefrom proxy insteaduseAuditLogshook types changed - Returns proxy DTOs- Extension token types updated - From namespace types to proxy DTOs
@abpjs/language-management
LanguageService.getList()return type changed - FromListResultDto<LanguageDto>toPagedResultDto<LanguageDto>LanguageManagement.State.languageResponsetype changed - FromListResultDtotoPagedResultDto
@abpjs/saas
- Extension contributor types now use proxy DTOs -
SaasEntityActionContributors,SaasToolbarActionContributors, and all other contributor types now useEditionDto/SaasTenantDtoinstead ofSaas.Edition/Saas.Tenant
@abpjs/theme-shared
DEFAULT_VALIDATION_BLUEPRINTSformat changed - Now uses the proxy validation formatConfirmationComponentprop changes - Updated to align with new confirmation service
@abpjs/schematics
- Minimum Node.js version - Now requires Node.js 18+
New Features
@abpjs/account-pro
- Admin Settings Module - Complete admin module with services and hooks:
AccountAdminCaptchaService- Captcha settings managementAccountAdminExternalProviderService- External login provider settingsAccountAdminRecaptchaService- Google reCAPTCHA settingsAccountAdminSettingsService- General account settingsAccountAdminTwoFactorService- Two-factor authentication settings- React hooks:
useAccountAdminCaptchaSettings,useAccountAdminExternalProviderSettings,useAccountAdminRecaptchaSettings,useAccountAdminSettings,useAccountAdminTwoFactorSettings
@abpjs/file-management
xsrfHeaderNameconfig option - Customize the XSRF/CSRF header name for file uploads
@abpjs/language-management
getLanguagesTotalCount()restored - Previously removed in v3.0.0, now restored onLanguageManagementStateService
@abpjs/permission-management
toggleSelectThisTab()- New method for tab-level permission toggling- Parent/child permission cascading - Selecting a parent permission now cascades to children
Deprecations
The following legacy services and types are now formally deprecated and will be removed in v5.0:
| Package | Deprecated | Replacement |
|---|---|---|
| @abpjs/identity-pro | IdentityService | IdentityRoleService, IdentityUserService, IdentityClaimTypeService |
| @abpjs/identity-pro | IdentitySecurityLogService (legacy) | Import from proxy/identity |
| @abpjs/identity-pro | Identity namespace types | Proxy DTOs (IdentityRoleDto, IdentityUserDto, etc.) |
| @abpjs/language-management | LanguageManagementService | LanguageService, LanguageTextService |
| @abpjs/language-management | LanguageManagement namespace types | Proxy DTOs (LanguageDto, LanguageTextDto, etc.) |
| @abpjs/saas | SaasService | TenantService, EditionService |
| @abpjs/saas | Saas namespace types | Proxy DTOs (SaasTenantDto, EditionDto, etc.) |
| @abpjs/account-pro | eAccountComponents, eAccountRouteNames, ManageProfileTabsService | New admin services |
Packages
| Package | Version | Changes |
|---|---|---|
| @abpjs/core | 4.0.0 | EnvironmentService signature change, removed modules, authGuard$ removed |
| @abpjs/theme-shared | 4.0.0 | Validation blueprints format, confirmation component updates |
| @abpjs/theme-basic | 4.0.0 | Version alignment |
| @abpjs/account | 4.0.0 | Version alignment |
| @abpjs/account-pro | 4.0.0 | New admin settings module (5 services, 5 hooks), deprecations |
| @abpjs/identity | 4.0.0 | Services table updated to proxy services |
| @abpjs/identity-pro | 4.0.0 | Identity.State migrated to proxy DTOs, claimTypes removed, legacy services deprecated |
| @abpjs/feature-management | 4.0.0 | Version alignment |
| @abpjs/permission-management | 4.0.0 | PermissionManagementService removed, hook types updated, new cascading behavior |
| @abpjs/setting-management | 4.0.0 | Version alignment |
| @abpjs/tenant-management | 4.0.0 | TenantManagementService removed, updateTenant signature changed |
| @abpjs/components | 4.0.0 | Version alignment |
| @abpjs/schematics | 4.0.0 | Node.js 18+ required, --url flag now required for proxy commands |
| @abpjs/file-management | 4.0.0 | New xsrfHeaderName config option |
| @abpjs/audit-logging | 4.0.0 | AuditLoggingService/EntityChangeService removed, hook types updated |
| @abpjs/language-management | 4.0.0 | getList() returns PagedResultDto, getLanguagesTotalCount() restored, legacy service deprecated |
| @abpjs/saas | 4.0.0 | Extension contributor types use proxy DTOs, SaasService deprecated |
| @abpjs/text-template-management | 4.0.0 | Version alignment |
| @abpjs/chat | 4.0.0 | Version alignment |
Upgrade
Free Packages
npm install @abpjs/core@4.0.0 @abpjs/theme-shared@4.0.0 @abpjs/theme-basic@4.0.0 @abpjs/account@4.0.0 @abpjs/identity@4.0.0 @abpjs/feature-management@4.0.0 @abpjs/permission-management@4.0.0 @abpjs/setting-management@4.0.0 @abpjs/tenant-management@4.0.0 @abpjs/components@4.0.0 @abpjs/schematics@4.0.0
Pro Packages
npm install @abpjs/account-pro@4.0.0 @abpjs/audit-logging@4.0.0 @abpjs/chat@4.0.0 @abpjs/identity-pro@4.0.0 @abpjs/language-management@4.0.0 @abpjs/saas@4.0.0 @abpjs/text-template-management@4.0.0 @abpjs/file-management@4.0.0