Hi,
It seems there is no support for pushing a new component into the routes collection via using route.provider.ts
But as another option, you can replace the menu component and render the menus on your own logic:
https://abp.io/docs/latest/framework/ui/angular/component-replacement?_redirected=B8ABF606AA1BDF5C629883DF1061649A#layout-components
Hi,
Everything looks good except ABP Studio CLI.
Can you find the ABP Studio logs and share with us to find the problem. The logs are located yourusername/.abp/studio/ui/logs folder by default.
To overcome the PingOne authentication problem in ABP, my primary suggestion is to meticulously review your ABP application's authentication configuration against your PingOne application settings. Double-check that the Client ID, Client Secret, Authority URL, and Response Type in your ABP application perfectly match those configured in PingOne. Furthermore, investigate **claim mapping **within ABP to ensure that user attributes from PingOne are correctly translated and recognized by your ABP application for proper user login and authorization. Debugging the redirection flow and reviewing any logs during the authentication handshake can also pinpoint configuration mismatches.
If it helps, this article can be a good example for claim mappings: https://abp.io/community/articles/how-claim-type-works-in-asp-net-core-and-abp-framework-km5dw6g1
Thanks for your answer, we'll investigate if there is a breaking-change and update migration guide if necessary
You ticket is also refunded
Hi,
Can you provide any insights or suggestions to improve the performance? is await Task.Run(async ()).. is required? is seperate ouw required inside the handler?
If you need to execute main process and the event itself in a same transaction, then no, you cannot make it faster by executing in a different thread since the roll-back won't work whenever you use Task.Run. All the local events are designed to be runned in the same transaction.
But if you don't need to execute in the same transaction, you can use IDistributedEventBus with RabbitMQ or Kafka. In that case you can use Inbox/Outbox Pattern to ensure all the events are consistently published and consumed. If your application goes bigger, that might be a good scenario for you
The most likely issue is that scaling the ABP application instances increases the load on the SQL Server container beyond its capacity, causing it to become unhealthy. You should primarily investigate the resource limits configured for the SQL Server Docker container (CPU, memory, disk I/O) and SQL Server's internal configuration, particularly the maximum number of connections and memory settings, to ensure they are adequate for the increased load. Additionally, checking SQL Server error logs within the container for specific error messages related to resource exhaustion or connection failures is crucial for pinpointing the exact bottleneck.
Hi,
You can manually map your physical .cshtml files to custom paths. Here is an example how it's done in CMS Kit: https://github.com/abpframework/abp/blob/a753ed676687f44949cc013fd17e75b0f4c54ddb/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs#L113-L128
If you need more dynamic and determined at the runtime you can go with DynamicRouteTransformer, and here how it can be implemented: https://github.com/abpframework/abp/blob/dev/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKitPageRouteValueTransformer.cs#L46 And registration: https://github.com/abpframework/abp/blob/a753ed676687f44949cc013fd17e75b0f4c54ddb/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPagesConfigurationExtensions.cs#L29C38-L29C69
But you wont need the dynamic one, probably manually mapping in the Host project would be enough in your case:
options.Conventions.AddPageRoute("/Books/Index", "/CustomModule/Books);
options.Conventions.AddPageRoute("/Authors/Index", "/CustomModule/Authors);
// ...
If you wish to create client-proxy for Account module, you can still pass -m account parameter for generating client-proxy.
Ok, here is the possible reasons of the problem.You don't pass any module parameter -m and it's app by default.
Since the newly created classes included in your namespace, they started to be included in the app namespace.
Can you try adding the following attributes to your overriden Controller?
[Route("api/account")]
[Area("account")]
If Auto API Controllers is enabled in your project, your app service probably will be exposed as a controller still.
You can add RemoteService(IsEnabled = false)] attribute to your AppService too
[RemoteService(IsEnabled = false)]
[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(IAccountAppService), typeof(AccountAppService), typeof(CustomAccountAppService))]
public class CustomAccountAppService : AccountAppService
Hi,
ABP Framework supports all the OpenID Connect protocols and its standards. In your case, you could already connected to your custom Azure AD login. But you need a specific implementation but that's not implemented in ABP Framework or openiddict library that we use. It's more likely related to Azure.
Still I could find something that can be related to this topic, have you tried to add prompt=select_account parameter to the querystring while redirecting?
https://stackoverflow.com/questions/59361149/allow-a-switch-accounts-prompt
https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/5423