4.4.0-rc.1
Pre-release
Pre-release
Blog Post
See the announcement blog post to learn what's new with this version.
Breaking Changes
- PR #9208: Add basic-theme module. (by maliming)
- PR #8891: Use DateTimeModelBinder instead of SimpleTypeModelBinder for binding datetime. (by maliming)
- PR #8615: Replaced tui-editor with toast-ui editor (by realLiangshiwei)
- ISSUE #7964: TuiEditor - Replace tui-editor with toast-ui editor
Features
- ISSUE #9286: Allow to render more than one menu in the main menu
- PR #9145: Add install-libs command (by realLiangshiwei)
- ISSUE #9017: Add new languages: Hindi & Italian
- PR #8999: Add Language: Hindi and Italian (by berkansasmaz)
- ISSUE #8984: ABP CLI: new command: install-libs
- PR #8898: Allow to customize EF Core mapping of entity and dbContext of an existing module (by realLiangshiwei)
- ISSUE #8886: ABP CLI prompt command
- ISSUE #8885: ABP CLI batch command
- ISSUE #8863: Allow to customize configuration of a dbcontext via object extension manager
- ISSUE #8862: Allow to customize EF Core mapping of an entity of an existing module
- PR #8814: Add IsActive property to TenantConfiguration. (by maliming)
- PR #8742: Introduce the SimpleStateChecker. (by maliming)
- ISSUE #8623: Add Finnish and Français languages
- PR #8616: Add Language: Finnish and Français (by berkansasmaz)
- ISSUE #8380: Dynamic menu management for the CMS Kit Pages feature
- ISSUE #8373: Razor engine support for text templating
Enhancements
- PR #9442: Added exception handling section to event bus document (by realLiangshiwei)
- PR #9438: Implemented: Invalidate client configuration cache for blazor server-side apps (by hikalkan)
- ISSUE #9437: Invalidate client configuration cache for blazor server-side apps
- PR #9433: Allowing the developer to handle ajax error. (by realLiangshiwei)
- ISSUE #9432: abp.ajax fails silently when jqXHR.status === 0
- PR #9427: Update aspnetcore template use
AddAbpSwaggerGen
(by JadynWong) - ISSUE #9422: Update Event Bus document
- PR #9409: Docs: Highlight Code Lines (by EngincanV)
- PR #9406: Made IRemoteServiceConfigurationProvider async (by hikalkan)
- PR #9393: Update Customizing-Application-Modules-Guide.md (by sturlath)
- PR #9369: Change the current tenant via querystrings. (by maliming)
- ISSUE #9360: How to handle tenantId from query parameters on landing pages
- ISSUE #9357: Generic Type in Api Dto will cause coupling between microservices.
- PR #9350: Extracted RemoteServiceConfigurationProvider. (by hikalkan)
- ISSUE #9343: Angular UI: Get ngx-datatable messages from an injection token to be able to override the messages
- PR #9341: Add SecurityStampValidatorCallback to Identity module. (by maliming)
- PR #9338: Docs module nav menu text size improvements (by yekalkan)
- PR #9336: Supported NCrunch (by realLiangshiwei)
- PR #9332: Added RepositoryAsyncExtensions.AnyAsync() without predicate parameter (by realLiangshiwei)
- ISSUE #9328: Return a better exception message and HTTP status code for optimistic concurrency exceptions
- ISSUE #9327: Add RepositoryAsyncExtensions.AnyAsync() without predicate parameter
- PR #9303: Handle validation errors on reset password. (by hikalkan)
- PR #9299: Use AddControllersAsServices&AddViewComponentsAsServices. (by maliming)
- ISSUE #9288: Use default cors policy instead of a named one
- ISSUE #9262: Allow to replace a dbcontext by a given type
- PR #9253: Disable audit logs for signalr hub connect/negotiate requests (by realLiangshiwei)
- PR #9244: Upgrade Castle.Core.AsyncInterceptor to 2.0 (by maliming)
- PR #9239: Add an
remove
extentions in AutoEntityDistributedEventSelectorListExtensions.cs adjust theAdd<TEntity>
(by xyfy) - ISSUE #9234: Document: Allow to customize EF Core mapping of entity and dbContext of an existing module
- PR #9231: Skip authenticate when action allow anonymous. (by maliming)
- PR #9230: Add requireHttps to environment*.ts (by realLiangshiwei)
- PR #9209: Angular UI: Created auth-utils.ts file to use some functions as shared (by mehmet-erim)
- ISSUE #9203: Create "basic theme" module
- PR #9195: Add appsettings.secrets.json to template (by realLiangshiwei)
- ISSUE #9182: Project name cannot contain Blazor keyword
- PR #9177: Add blazor.server.host to module template (by realLiangshiwei)
- PR #9169: Update module template (by realLiangshiwei)
- ISSUE #9168: Add blazor-server host to module template
- PR #9155: Revisit the menu item names on the user menu (by realLiangshiwei)
- ISSUE #9146: Angular UI: Upgrading to Angular v12
- ISSUE #9134: Disable audit logs for signalr hub connect/negotiate requests
- PR #9131: Change redirect button text after logout (by gterdem)
- ISSUE #9130: Change redirect button text after logout
- PR #9117: Blob AWS container name support dots (by realLiangshiwei)
- ISSUE #9114: Blob AWS: container name support dots
- PR #9072: Make AbpActionContextExtensions class public (by realLiangshiwei)
- ISSUE #9059: The class AbpActionContextExtensions change to public is better
- PR #9056: Add missing localization keys for abp.io and commercial.abp.io (by EngincanV)
- PR #9043: Add SuppressLabel to AbpSelectTagHelper. (by maliming)
- ISSUE #9041: Define DataFilter property to the ApplicationService base class
- PR #9002: postgresql connection string updated (by can-guven)
- PR #8988: Add Null check for Name and Surname (by GotzeWong)
- ISSUE #8985: Add notification to docs indexing service
- PR #8979: CLI: Validate project name for the template creation (by EngincanV)
- ISSUE #8972: Blazor WASM: Support applications without authentication
- ISSUE #8959: ABP CLI validate project name
- ISSUE #8930: Docs module nav menu text size improvements
- PR #8921: Add OnDeletedEntityAsync (by d-oit)
- PR #8916: Add MultiTenancyMiddlewareErrorPageBuilder to show exception. (by maliming)
- PR #8914: Prevent adding duplicate models. (by maliming)
- PR #8897: Introduce ReplaceDbContextAttribute (by realLiangshiwei)
- PR #8894: Rename some services and properties of StateChecker. (by maliming)
- PR #8893: Throw UserFriendlyException when tenant is not exist. (by maliming)
- ISSUE #8890: Get connection string name from the replaced dbcontext
- ISSUE #8889: Introduce ReplaceDbContextAttribute
- PR #8880: Cli: Created LoginInfoCommand (by yekalkan)
- PR #8829: Introduce event bus error handler (by realLiangshiwei)
- ISSUE #8822: Angular UI generates multiple locale files
- PR #8815: Deallocate developer seat when the user logs out (by EngincanV)
- ISSUE #8776: Consider to remove EntityFrameworkCore.DbMigrations project from the solution
- ISSUE #8770: Move IHasConcurrencyStamp interface to an inner package
- ISSUE #8769: Fix misusages of application package dependencies
- PR #8758: Handle the access_denied in AddAbpOpenIdConnect. (by maliming)
- PR #8673: Supports the use of multiple template rendering engines in one application. (by maliming)
- PR #8662: Add image compression Github action (by EngincanV)
- ISSUE #8633: Update Oracle.Devart package to 9.14.1234
- PR #8632: Add child documents to navigation menu (by EngincanV)
- PR #8419: Refactor ProcessWindowsLoginAsync. (by maliming)
- ISSUE #8326: How to use NewtonsoftJson in the Abp.SignalR
- PR #8310: Update EventOrganizer post for async queryable changes (by EngincanV)
- ISSUE #7765: Update jQuery version to 3.5.1
- ISSUE #7728: lookup should be null in objectExtensions in the app configuration endpoint, if url not specified
- ISSUE #7401: Update event organizer sample and article for async queryable changes
Bug Fixes
- PR #9411: SetDefaultsForExtraProperties in ExtensionProperties component (by realLiangshiwei)
- ISSUE #9407: Docs module: Hide edit button when using FileSystem
- PR #9276: Install-libs command work with sub-directories (by realLiangshiwei)
- ISSUE #9267: abp install-libs should work with sub-directories
- ISSUE #9256: abp Blogging module: Error when create a new post without text on Text editor
- ISSUE #8053: CurrentUser claims duplicate
Others
- PR #9426: Add FileName for RemoteStreamContent (by JadynWong)
- PR #9425: Fix & Refactor docs domain module (by yekalkan)
- PR #9410: Blog: Make content required (by yekalkan)
- PR #9408: Docs module: FileSystemDocumentSource should set EditLink as Null (by yekalkan)
- ISSUE #9403: Upgrade microservice sample to the latest
- PR #9399: CmsKit - Update Tests according to Menu Improvements (by enisn)
- PR #9396: Cms Kit - Menu Improvements (by enisn)
- PR #9392: Angular UI: Trigger focus on first element of extensible form (by mehmet-erim)
- PR #9391: Cli: fix no-ui option for module templates (by yekalkan)
- ISSUE #9389: CmsKit - Menu Improvements
- PR #9385: Update localizations (by berkansasmaz)
- PR #9372: Angular UI: Added an utility function called pipeToTokenResponse (by mehmet-erim)
- PR #9371: Add missing localizations (by berkansasmaz)
- PR #9367: Community Article: Using Elsa Workflow with ABP Framework (by EngincanV)
- PR #9358: Use Type instead of TypeAsString to compare. (by personball)
- PR #9354: CmsKit - Add caching to MainMenu (by enisn)
- PR #9353: Check IsUsedByTenants when use mapped database connection string. (by maliming)
- PR #9352: Update the link of basic theme source code in docs. (by maliming)
- PR #9349: getWithoutPageReset method add to list service (by muhammedaltug)
- PR #9346: Angular UI: Added an injection token named NGX_DATATABLE_MESSAGES (by mehmet-erim)
- PR #9340: Angular UI: Upgraded Angular version of the templates to v12 (by mehmet-erim)
- PR #9337: Pass tenantId to reset password (by bnymncoskuner)
- PR #9309: Update CMS Kit Introduction Blog Post & adjust skip-db-migrations usage (by yekalkan)
- PR #9307: Document how to add basic theme's source code into the application's solution (by yekalkan)
- PR #9304: Open the related document page after adding a module via CLI (by yekalkan)
- PR #9301: Add Impersonation infrastructure. (by maliming)
- ISSUE #9298: Elsa Workflow problem with versioned api explorer
- PR #9292: Use default CORS policy (by realLiangshiwei)
- PR #9290: Angular UI: Hide navigation elements which have not path (by mehmet-erim)
- PR #9279: Fix some translation errors (by berkansasmaz)
- PR #9277: Change current tenant when reset password (by realLiangshiwei)
- PR #9261: Cms Kit menu management (by enisn)
- PR #9260: Updated lookup property usage in object extensions and state utils (by armanozak)
- PR #9258: Localize error message in DataAnnotationObjectValidationContributor. (by maliming)
- PR #9247: Update Entity-Framework-Core.md (by mentianyi)
- PR #9243: add nav items (by muhammedaltug)
- PR #9242: Add missing localizations for license extend section (by EngincanV)
- PR #9241: Add document of customizing EF Core mapping of Entity&DbContext. (by maliming)
- PR #9226: Cascade select/deselect feature checkboxs. (by maliming)
- PR #9219: Angular UI: Updated the Authorization document (by mehmet-erim)
- PR #9218: Use RequireFeatures (by realLiangshiwei)
- ISSUE #9217: Reset Password link on first login
- PR #9216: Admin: Add missing localizations (by EngincanV)
- ISSUE #9200: Child Features ignore Parent Features enabled status
- PR #9198: Imporve install-libs command (by realLiangshiwei)
- PR #9196: Abp.io: Update localizations for e-book page (by EngincanV)
- PR #9194: Remove EntityFrameworkCore.DbMigrations project from the solution & Compatible with CLI. (by maliming)
- PR #9185: Commercial.abp.io: Add missing localizations (by EngincanV)
- PR #9176: Return 2FA info in AbpResourceOwnerPasswordValidator. (by maliming)
- PR #9171: lpx: use renamed package (by bnymncoskuner)
- PR #9156: E-Book Page Localizations for abp.io and commercial.abp.io (by EngincanV)
- PR #9148: Update RedirectToLogin.razor (by d-oit)
- ISSUE #9147: Custom class validate can not use resource language
- PR #9144: Angular UI: Pass meridian to extensible datetime picker component (by mehmet-erim)
- PR #9142: Merge branch dev with rel-4.3. (by maliming)
- PR #9123: language and user info implemented (by muhammedaltug)
- ISSUE #9122: Update Lookup Property Usage
- PR #9121: Set lookup property value if url is not null or empty. (by ilkayilknur)
- PR #9120: Update BlobNamingNormalizers (by realLiangshiwei)
- PR #9119: Update AzureAD Integration Articles (by gterdem)
- ISSUE #9118: Problem of blob BlobNamingNormalizers
- PR #9116: Use RemoteServiceErrorInfo as the exception info in the AuditLog. (by maliming)
- PR #9115: fixed some spanish translations (by washyn)
- ISSUE #9113: Auditing: EntityHistoryHelper ExtraProperties field compare question
- ISSUE #9101: Cannot see API parameters and exception detail on "ModelState is not valid" error
- PR #9073: improved sentence flow a bit (by tkhadimullin)
- ISSUE #9068: Create a sample project with Elsa Workflow (open-source)
- ISSUE #9058: Update AzureAD Integration Articles
- PR #9057: Handle the case where datetime is null. (by maliming)
- PR #9048: CLI: Remove illegal char check for project creation (by EngincanV)
- PR #9046: Use AsyncLocal to store static checker. (by maliming)
- ISSUE #9045: Upgrade samples to 4.3.2
- ISSUE #9034: Suppress label is not supported by abp-select tag helper
- ISSUE #9033: Web test in app startup template fails in NCrunch
- PR #9032: Reduce technical debt (by marodev)
- PR #9030: Add RequirePermissionsSimpleBatchStateChecker_Tests. (by maliming)
- PR #9029: Add ClearCheckModels method to RequirePermissionsSimpleBatchStateChecker (by maliming)
- ISSUE #9028: The permission check is incorrect when multiple menus use the same permission name.
- PR #9021: Fix the permission check problem. (by maliming)
- PR #9018: CLI: Fix project creation (by EngincanV)
- PR #8936: Commercial: Add new localizations for demo creation page (by EngincanV)
- PR #8919: navbar impl (by muhammedaltug)
- PR #8911: CMS Kit Introduction Blog Post (by ilkayilknur)
- PR #8910: package initial (by muhammedaltug)
- PR #8908: Add custom setting page document (by realLiangshiwei)
- PR #8906: ABP CLI prompt command (by maliming)
- PR #8899: Add Simple State Checker document. (by maliming)
- ISSUE #8895: Add document for SimpleStateChecker & Update State Provider document.
- PR #8883: Module initializations (by cotur)
- PR #8882: JSON Documentation (by ilkayilknur)
- PR #8859: Update Volo.Abp.EntityFrameworkCore.MySQL.csproj (by cuibty)
- PR #8847: Update comment of WithProviders method. (by maliming)
- ISSUE #8845: The comment on top of the method of class PermissionDefinition as the link referring to is not correct
- PR #8838: Add common.props to projects. (by maliming)
- PR #8824: Update community article: How to Add Custom Properties to the User Entity (by berkansasmaz)
- PR #8823: Singularized lazy-loaded Angular UI locales (by armanozak)
- PR #8821: Removed next tag from npm install commands in Account-Module.md (by mehmet-erim)
- PR #8817: Added module definition files (by yekalkan)
- ISSUE #8813: Missing common.props in new Blazor template csproj files
- PR #8795: Syncfusion community article (by stsrki)
- PR #8782: Standardize passing and setting of content in Tag Helpers (by acjh)
- PR #8781: Support option child element for abp-select tag (by acjh)
- PR #8774: chore(deps): bump Swashbuckle.AspNetCore from 6.1.1 to 6.1.3 (by PMExtra)
- ISSUE #8757: The document of cms kit module.
- PR #8755: Add example link to Multi-Tenancy (by maliming)
- PR #8746: Docs - Add Permission State Provider section to Authorization.md (by enisn)
- PR #8743: Update jquery package.json (by maliming)
- ISSUE #8683: CurrentUser.UserName is null in Blazor Server + SignalR project
- ISSUE #8679: Add Pemission & Feature & GlobalFeatures RequiredPermissionName to ApplicationMenuItem & ToolbarItem
- PR #8674: Added and changed some dutch localization (by nielscil)
- PR #8667: refactor: change Initialize in VirtualFileLocalization to virutal (by badre429)
- PR #8663: Docs - Add Permission State Provider section to Authorization.md (by enisn)
- PR #8655: Resolved the conflicted import paths (by realLiangshiwei)
- ISSUE #8651: Supports the use of multiple template rendering engines in one application.
- ISSUE #8643: Document update for permission state provider system
- PR #8599: Use IOS 8601 as datetime format in querystring and InvariantCulture route. (by maliming)
- PR #8598: Docs - Add String Encryption Document (by enisn)
- ISSUE #8595: Dynamic Proxy - Capture milliseconds abp http client
- PR #8576: add object value 📖 (by yanghaiji)
- PR #8554: Implemented Basic & ApiKey authentication for elasticsearch (by NecatiMeral)
- ISSUE #8553: Docs - ElasticSearch should be usable with authentication
- PR #8546: Add missing localizations for Community (by berkansasmaz)
- ISSUE #8540: Update Devart.Oracle package v9.14.1228
- ISSUE #8502: Test: Blazor Page header documentation
- ISSUE #8501: Test: Blazor UI extensions documentation
- PR #8480: Add missing localizations (by berkansasmaz)
- PR #8460: Update AbpModuleHelper.cs (by sc1994)
- PR #8434: Add missing localizations (by berkansasmaz)
- ISSUE #8426: Document: SMS Sending & Aliyun integration
- ISSUE #8423: Document: Json packages, json serialization, hybrid serialization and options
- ISSUE #8421: Document: Cancellation token provider
- ISSUE #8420: Document: Global Features System
- PR #8416: Added the missing *abpPermission directive for Create, Edit, and Delete functionality in docs. (by richfuns)
- PR #8392: Razor engine support for text templating (by maliming)
- PR #8371: Upgrade jQuery to 3.6.0 (by maliming)
- PR #8351: Support pre-configure ISignalRServerBuilder. (by maliming)
- PR #8345: Made some improvements for the publishing scripts (by mehmet-erim)
- ISSUE #8344: Some enhancements for the publishing scripts
- PR #8294: Docs: Create GetDocumentUrls endpoint (by EngincanV)
- ISSUE #8289: Auto login (Windows Login) with LDAP
- ISSUE #8175: Create a "Quick Start" tutorial
- ISSUE #8030: Add AspNetCore.Seo package to docs module
- ISSUE #7870: Open the related document page after adding a module via CLI
- ISSUE #7661: Document IgnoreMultiTenancy usage on dbcontexts
- ISSUE #7657: RabbitMQ rapidly re-delivers the messages
- ISSUE #7119: AbpValidationException thrown for ModelState errors on Razor pages
- ISSUE #6862: Tenant Management documentation
- ISSUE #6435: How to integrate the syncfusion Blazor components with the ABP Blazor UI?
- ISSUE #3111: Docs code highlighting not working for TypeScript
- ISSUE #2187: Setting management UI document