ABP Version 10.1 Migration Guide
This document is a guide for upgrading ABP v10.0 solutions to ABP v10.1. There are some changes in this version that may affect your applications. Please read them carefully and apply the necessary changes to your application.
Open-Source (Framework)
Swashbuckle.AspNetCore Upgraded to v10
In this version, the Swashbuckle.AspNetCore package has been upgraded to v10. This upgrade also updates the underlying Microsoft.OpenApi package to v2.x, which introduces breaking changes that may affect your application if you have any custom Swagger/OpenAPI configuration such as custom filters, schema customizations, or security requirements.
Required Actions:
Update any
usingdirectives that reference types from theMicrosoft.OpenApi.Modelsnamespace to also include the newMicrosoft.OpenApinamespace (interfaces such asIOpenApiSchemaare now inMicrosoft.OpenApi, while concrete types such asOpenApiSchemaremain inMicrosoft.OpenApi.Models).Update filter/handler method signatures to accept the new interfaces (e.g.
IOpenApiSchemainstead ofOpenApiSchema). When you need to mutate properties, cast to the concrete type first. For example:public void Apply(IOpenApiSchema schema, SchemaFilterContext context) { if (schema is OpenApiSchema openApiSchema) { // Properties are only mutable on the concrete type openApiSchema.Type = JsonSchemaType.String; } }Replace usage of the
OpenApiSchema.Typeproperty using a string (e.g."string"or"boolean") with theJsonSchemaTypeflags enumeration.Replace usage of the
OpenApiSchema.Nullableproperty by OR-ing theJsonSchemaType.Nullvalue toOpenApiSchema.Type(e.g.schema.Type |= JsonSchemaType.Null;).Update any use of
.Referenceproperties (e.g.OpenApiSchema.ReferenceV3) to use the new*Referenceclass instead (e.g.OpenApiSchemaReference).Update any use of
AddSecurityRequirement()to use aFunc<OpenApiDocument, OpenApiSecurityRequirement>.
For a full list of migration steps, please refer to the Swashbuckle.AspNetCore v10 migration guide.
See #24255 for more details.
Add New EF Core Migrations for Password History/User Passkey Entities
In this version, we added password history/ user passkeys support to the Identity PRO Module to enhance security compliance. A new IdentityUserPasswordHistory entity has been added to store previous password hashes, preventing users from reusing recent passwords. Additionally, we have introduced an IdentityUserPasskey entity to support passkey-based authentication.
You need to create a new EF Core migration and apply it to your database after upgrading to ABP 10.1.
See #23894 for more details.
Angular Version Upgraded to v21
ABP now targets Angular v21 (up from v20). For existing Angular projects, apply these changes:
- TypeScript: Update to
~5.9.0 - main.ts: Add
provideZoneChangeDetection()to the bootstrap config:// angular/src/main.ts bootstrapApplication(AppComponent, { ...appConfig, providers: [provideZoneChangeDetection(), ...appConfig.providers], }).catch(err => console.error(err)); - tsconfig.json: Align with the new property formats to avoid build issues:
/* angular/tsconfig.json */ /* To learn more about this file see: https://angular.io/config/tsconfig. */ { "compileOnSave": false, "compilerOptions": { "baseUrl": "./", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "esModuleInterop": true, "experimentalDecorators": true, "moduleResolution": "bundler", "importHelpers": true, "skipLibCheck": true, "target": "ES2022", "module": "ES2022", "lib": ["ES2022", "dom", "esnext.disposable"], "paths": {}, "useDefineForClassFields": false }, "angularCompilerOptions": { "enableI18nLegacyMessageIdFormat": false } }
For more details, see the Angular version reference.
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:
AI Management Module: Workspace Entity Base Class Changed
In this version, the Workspace entity in the AI Management Module has been changed from FullAuditedAggregateRoot to AuditedAggregateRoot as the base class.
This change removes support for soft deletion and related auditing features. If you are using the AI Management module, you need to create a new EF Core migration and apply it to your database.
Important: If you have soft-deleted Workspaces in your database, they will become visible after this update. You may need to create a migration script to clean up already deleted records before applying the migration.
CMS Kit Pro Module: Dynamic FAQ Group Management
In this version, the FAQ group system in the CMS Kit Pro Module has been redesigned to support dynamic group management. FAQ groups are now first-class entities stored in the database, replacing the previous static configuration approach.
Key Changes:
- A new
FaqGroupentity has been introduced with unique names for FAQ groups - The
FaqSectionentity now usesGroupId(Guid) instead ofGroupName(string) (GroupName is deprecated and will be removed soon. Use GroupId instead.) - Static FAQ group configuration (
FaqOptions.SetGroups) has been removed
Migration Steps:
- Remove static group configuration from your code (e.g.,
Configure<FaqOptions>(options => { options.SetGroups([...]); })) - Create a new EF Core migration and apply it to your database
- Run the one-time data migration seeder to migrate existing FAQ sections to the new group entity model
Note: If you have existing FAQ data, you may need to create a data seeder to migrate your existing group associations to the new entity-based model.