However, this can work only if the audit log database with the given connection string is available. So, you need to create the second database, create audit log tables inside it and maintain the database tables. No problem if you manually do all these. However, the recommended approach is the code first migrations. One of the main purposes of this document is to guide you on such database separation scenarios.
Ok, I understand, The migration for module can be manage by module itself, not the application.
I have add builder.ConfigureYourModule() and migration is updating default database not module database.
I mean one apps can have multiple databases connection string, Like If I want abp audit log in different database then we can configure that same way, I want different database for custom module. One is default connection string and ModuleConnectionString.
public static class ModuleDbProperties
{
public static string DbTablePrefix { get; set; } = "Module";
public static string? DbSchema { get; set; } = null;
public const string ConnectionStringName = "Module";
}
I have already called builder.ConfigureYourModule(); in module class, If I add builder.ConfigureYourModule(); in main application ef core module then it will create entities in same database, not in module database. Right?
Execution command : dotnet ef migrations add TestName Folder: Ef core module in main application
Migration run successfully but only with abp entities, not module entity. I have add reference of module ef core in main ef core module and also add DependsOn ef core module ref to main ef core module.
Do I need to do any other configuration to add module entities migration?
I have created new module and add each project references to main application project like application into application, ef into ef module. When I add migration with module dbContext then It throws error that no dbContext was found. The startup project is main host application and selected project is main entity framework module.
I have configured the Azure OpenId but when I use organization login and try to register the user, auth server throwing exception of Setting value for 'Abp.Mailing.Smtp.Password' is null or empty!
.AddOpenIdConnect("AzureOpenId", "Organisation login", options =>
{
options.Authority = configuration["Azure:AzureAd:Instance"] + configuration["Azure:AzureAd:TenantId"] + configuration["Azure:AzureAd:Version"];
options.ClientId = configuration["Azure:AzureAd:ClientId"];
options.ResponseType = OpenIdConnectResponseType.CodeIdToken;
options.CallbackPath = configuration["Azure:AzureAd:CallbackPath"];
options.ClientSecret = configuration["Azure:AzureAd:ClientSecret"];
options.RequireHttpsMetadata = false;
options.SaveTokens = true;
options.GetClaimsFromUserInfoEndpoint = true;
options.Scope.Add("email");
});
If I create user from users management then there is no error and its working fine.
I want to add one property passcode for user in create user and my account personal info section. I have followed below article and extra property is added in database.
https://abp.io/community/articles/identityuser-relationship-and-extending-it-xtv79mpx#:~:text=Extending%20the%20User%20Entity%20With,entity%20of%20the%20Identity%20Module.
private static void ConfigureExtraProperties()
{
ObjectExtensionManager.Instance.Modules()
.ConfigureIdentity(identity =>
{
identity.ConfigureUser(user =>
{
user.AddOrUpdateProperty<string>(
"Passcode",
property =>
{
property.Attributes.Add(new StringLengthAttribute(12) { MinimumLength = 6 });
property.DisplayName = new FixedLocalizableString("Passcode");
property.Configuration[IdentityModuleExtensionConsts.ConfigurationNames.AllowUserToEdit] = true;
}
);
});
});
}
But that property is not displaying in UI, I have angular application. Is there any configuration that I need to apply in angular application?
I want to use the SignalR the same way the IAuditingStore is working. I want to notify to the client on every new entry is added into the system for specific entity only. I auditing is working for all the entities but notification to the client should be based on specified entities in configuration. Is there any module available to performance this action?