We're seeing an issue when multi-tenancy is enabled and when the tenancy picker has been removed (like as in https://community.abp.io/posts/hide-the-tenant-switch-of-the-login-page-4foaup7p), specifically when creating tenants and the tenant admin is created - the default is the same username making it difficult/impossible to use without having them login using email instead.
To reproduce:
admin
(since that's the default username, which isn't obvious to the user creating the tenancy) and the password specified in #2Expected: Should be able to login Actual: Can't login
Now, it does make sense but what would be nice is:
IdentityDataSeedContributor.AdminUsernamePropertyName
property so we can modify (Project)TenantDatabaseMigrationHandler
like:// Seed data
using (var uow = _unitOfWorkManager.Begin(requiresNew: false, isTransactional: true))
{
await _dataSeeder.SeedAsync(
new DataSeedContext(tenantId)
.WithProperty(IdentityDataSeedContributor.AdminUsernamePropertyName, adminUsername) // <-- NEW
.WithProperty(IdentityDataSeedContributor.AdminEmailPropertyName, adminEmail)
.WithProperty(IdentityDataSeedContributor.AdminPasswordPropertyName, adminPassword)
);
await uow.CompleteAsync();
}
Is that possible?
Working on adding plugin modules, for handling logic specific to clients and I started seeing background jobs stop working suddenly (reverting to NullBackgroundJobManager).
Working on creating a repro repo.
Without changes, commenting out the options.PlugInSources.AddFolder
line causes it to start working correctly again (though without the module being registered). Here's the code in which commenting it out makes it work again:
await builder.AddApplicationAsync<CabMDWebModule>(options =>
{
// Hmm, works for now but what we want is a fixed location and if there are plugins, add them.
var currentDirectory = options.Services.GetHostingEnvironment().ContentRootPath;
var plugDllInPath = "";
for (var i = 0; i < 10; i++)
{
var parentDirectory = new DirectoryInfo(currentDirectory).Parent;
if (parentDirectory == null)
{
break;
}
if (parentDirectory.Name == "src")
{
#if DEBUG
plugDllInPath = Path.Combine(parentDirectory.FullName, "CabMD.ClientPlugIn.RMA", "bin", "Debug", "net8.0");
#else
plugDllInPath = Path.Combine(parentDirectory.FullName, "CabMD.ClientPlugIn.RMA", "bin", "Release", "net8.0");
#endif
break;
}
currentDirectory = parentDirectory.FullName;
}
if (Path.Exists(plugDllInPath))
{
// delete *.deps.json files before adding the folder as the dep file causes an error
foreach (var depFile in Directory.GetFiles(plugDllInPath, "*.deps.json"))
{
File.Delete(depFile);
}
options.PlugInSources.AddFolder(plugDllInPath);
}
});
hi
The solution is to set
IsServiceBusDisabled = true
in HTTP API module.
Yes, that seems to have done the trick. At the same time, for whatever reason, we also had to produce new keys. For some reason the default key that's created when you create the service bus doesn't work while a new key (created to be the same) works. Even scoped keys work (scoped to a topic), they also work.
Also, the "manage" permission is required or this'll be what happens:
Yea, we understand that - that's by design. While we know the background job runs when it runs, the job itself pubs the distributed event - why doesn't the event get received half the time?
Ultimately, this is all just to notify a user when a job completes independent of the page they are on (as reporting jobs can take long) - if there's a better way, we're all ears - but there isn't AFAIK currently and this should work.
Will share with liming.ma@volosoft.com
There's a repro here: https://github.com/victoriatolls/Acme.BookStore.DistributedEvent
Working on using distributed events, though what we're seeing is that not all events are being received as expected (half?):
What you're seeing:
abp.notify
Here's the options:
Configure<AbpAzureServiceBusOptions>(options =>
{
options.Connections.Default.Admin.Retry.MaxRetries = 3;
options.Connections.Default.Client.RetryOptions.Delay = TimeSpan.FromMilliseconds(100);
options.Connections.Default.Client.RetryOptions.MaxDelay = TimeSpan.FromSeconds(10);
options.Connections.Default.Client.RetryOptions.Mode = Azure.Messaging.ServiceBus.ServiceBusRetryMode.Exponential;
options.Connections.Default.Client.RetryOptions.MaxRetries = 10;
});
I'm seeing this logo flash when first loading any page in the app, not sure how to stop the lepton logo from appearing at all.
[Dependency(ReplaceServices = true)]
public class CabMDBrandingProvider : DefaultBrandingProvider
{
public override string AppName => "CabMD";
public override string LogoUrl => "/images/logo/logo_blue.png";
public override string LogoReverseUrl => "/images/logo/logo_white_large.svg";
}
Is this a side effect of how the logo is rendered?
It doesn't seem to matter if I try and override it either based on this documentation: https://docs.abp.io/en/commercial/7.4/themes/lepton-x/mvc#main-header-branding
The content doesn't change and the problem persists (the following isn't rendered, but it doesn't look like that would even help the problem as lpx-brand-logo is being changed after initial render):
<a href="" class="lpx-brand-logo" data-woah="123"></a>