ABP Version 8.3 Migration Guide

This document is a guide for upgrading ABP v8.x solutions to ABP v8.3. There are some changes in this version that may affect your applications, please read it carefully and apply the necessary changes to your application.

Open-Source (Framework)

Added AdminUserName parameter to IIdentityDataSeeder.SeedAsync method

Prior to this version, IIdentityDataSeeder.SeedAsync was used to seed the initial user data with the admin as the username, to be able to easily test all applications with all permissions granted.

In this version on, we allow you to set the default adminUserName. So, you can set the default user name to any name you want or leave it as it is and let the username be admin as before.

For example, in the MyProjectNameDbMigrationService.SeedDataAsync method (under the domain project's Data folder), you can pass the username as below:

    private async Task SeedDataAsync(Tenant? tenant = null)
    {
        Logger.LogInformation($"Executing {(tenant == null ? "host" : tenant.Name + " tenant")} database seed...");

        await _dataSeeder.SeedAsync(new DataSeedContext(tenant?.Id)
            .WithProperty(IdentityDataSeedContributor.AdminEmailPropertyName, IdentityDataSeedContributor.AdminEmailDefaultValue)
            .WithProperty(IdentityDataSeedContributor.AdminPasswordPropertyName, IdentityDataSeedContributor.AdminPasswordDefaultValue)
+           .WithProperty(IdentityDataSeedContributor.AdminUserNamePropertyName, "your-admin-user-name")
        );
    }

Normally, you don't need to make any changes in your code related to this change. However, if you used the IIdentityDataSeeder.SeedAsync method in your application, now also gets additional (and optional) adminUserName parameter that you can pass the value on.

See the PR for more info: https://github.com/abpframework/abp/pull/20131/

Docs Module: Improvements & Single Project Mode Support

In this version, we made some improvements in the Docs Module and introduced single project mode, which allows you to use a single project name for all of your documents.

While implementing this new feature, we made some small changes to the existing classes. For example, the constructor methods of the following classes have been changed, and need to be updated in your code, if you use them:

See the PR for more info: https://github.com/abpframework/abp/pull/19419

Updated datatables.net to 2.0.2

In this version, the datatables.net library version was updated from v1.11.4 to v2.0.2. We made all related changes at the framework level and updated the dependency and its resource mapping configurations. Also, we made it backward compatible so it should not directly affect your application.

However, notice this package is used by the @abp/aspnetcore.mvc.ui.theme.shared package, which is used by the official themes. Therefore, if you used any methods from the datatables.net library it might be already deprecated or removed.

See the PR for more info: https://github.com/abpframework/abp/pull/19340

ApplyAbpConcepts to Entities Whose Navigation Properties Changed

In this version, we have started updating entities' EntityVersion, ModificationAuditProperties, and ConcurrencyStamp properties whenever their navigation property changes. Normally, this should not affect your code, however, you may need to fix your tests or codebase for this change. Please see #20012 for more information.

Angular UI

We wish to formally inform you that ABP version 8.3 has been upgraded to incorporate Angular version 18. Consequently, we recommend migrating your application to Angular v18 to ensure compatibility.

Tenant impersonation & User impersonation

Add the impersonation: { userImpersonation: true, tenantImpersonation: true} object to the oAuthConfig of the environment if it does not exit.

export const environment = {
  //Other props..
  oAuthConfig: {
    //Other props..
    impersonation: {
      userImpersonation: true,
      tenantImpersonation: true,
    },
  },

See https://abp.io/docs/latest/modules/account/impersonation#angular

PRO

Please check the Open-Source (Framework) section before reading this section. The listed topics might affect your application and you might need to take care of them.

If you are a paid-license owner and using the ABP's paid version, then please follow the following sections to get informed about the breaking changes and apply the necessary ones:

Added RegEx Support to CMS Kit's (PRO) URL Forwarding System

ABP provides a URL Forwarding System, which allows you to create URLs that redirect to other pages or external websites. Prior to this version, the URL Forwarding System was only working for static URLs and didn't support RegEx. In this version, we introduced the RegEx support for the URL Forwarding System and now you can pass regular expressions for not static URLs.

Since a new property has been added to the CmsShortenedUrl entity, you should create a new migration and apply it to your database.

After creating a new migration and applying it to your database, typically you don't need to make any changes, however, if you have overridden a page/method or class related to the URL Forwarding System, you might need to update it accordingly. For this purpose, you can get the source code of the CMS Kit Module's and update the related parts in your application.

Contributors


Last updated: November 01, 2024 Edit this page on GitHub

Was this page helpful?

Please make a selection.

To help us improve, please share your reason for the negative feedback in the field below.

Please enter a note.

Thank you for your valuable feedback!

Please note that although we cannot respond to feedback, our team will use your comments to improve the experience.

In this document
Community Talks

Building Modular Monolith Applications Using .NET and ABP Framework

17 Oct, 17:00
Online
Watch the Event
Mastering ABP Framework Book
Mastering ABP Framework

This book will help you gain a complete understanding of the framework and modern web application development techniques.

Learn More