I want to call the tenent create api (/api/saas/tenants - post method) from postman or from another environment but it gives the 401 unauthorized .
-> When User Change Own Password then another sessions of that user force fully logout(this issue show in vulnerability tool report.)
Module Structure:
ModuleName.Application
ModuleName.Application.Contracts
ModuleName.Domain
ModuleName.Domain.Shared
ModuleName.EntityFrameworkCore
ModuleName.HttpApi
ModuleName.HttpApi.Client
ModuleName.Web
Project Solution Structure:
LIS.Application LIS.Application.Contracts LIS.AuthServer LIS.DbMigrator LIS.Domain LIS.Domain.Shared LIS.EntityFrameworkCore LIS.HttpApi LIS.HttpApi.Client LIS.HttpApi.Host LIS.Web LIS.Web.Public
i want to use module in this project but how to use in this Project Solution Structure? i used this module in non Tiered Project Structure its working fine
Created Project using abp suite with public site, cms, Tired and Seprate Tenant Schema
i want diff urls for tenants like for that i config
in Auth Project PreConfigure<AbpOpenIddictWildcardDomainOptions>(options => { options.EnableWildcardDomainSupport = true; options.WildcardDomainsFormat.Add("https://{0}.auth.domain.com"); });
and
Configure<AbpTenantResolveOptions>(options => { options.AddDomainTenantResolver("{0}.auth.domain.com"); });
In Web Project Configure<AbpTenantResolveOptions>(options => { options.AddDomainTenantResolver("{0}.web.domain.com"); });
in HttpApi.Host
Configure<AbpTenantResolveOptions>(options => { options.AddDomainTenantResolver("{0}.api.domain.com"); });
now i want to add in openidcconnect
in this i added urls for Application Type : Web ClientUrl : https://web.domain.com/ Redirect Uris : https://web.domain.com/signin-oidc Post Logout Redirect Uris:https://web.domain.com/signout-callback-oidc
how to config dynamic tenant wise urls in this?
I am migrating custom modules code from abp 5.2.1 to abp 8.0.2 when i migrate then
builder.Entity<TempLayer>(b =>
{
b.ToTable(SGLLayerManagementConsts.DbTablePrefix + nameof(TempLayer));
b.ConfigureByConvention();
b.HasKey(e => e.Id);
b.Property(e => e.Id).AutoGenerateGuidNpgSql();
b.HasKey(e => e.TempLayerId);
b.Property(e => e.TempLayerId).AutoGenerateGuidNpgSql();
b.Property(e => e.LayerName)
.IsRequired();
b.Property(e => e.BoundX1)
.IsRequired();
b.Property(e => e.BoundX2)
.IsRequired();
b.Property(e => e.BoundY1)
.IsRequired();
b.Property(e => e.BoundY2)
.IsRequired();
b.Property(e => e.IsSync)
.IsRequired()
.HasDefaultValue(true);
b.Property(e => e.IsQueryable)
.IsRequired()
.HasDefaultValue(true);
b.HasMany(e => e.LayerFields)
.WithOne(e => e.Layer)
.HasForeignKey(e => e.LayerId);
b.ApplyObjectExtensionMappings();
});
builder.Entity<TempLayerField>(b =>
{
b.ToTable(SGLLayerManagementConsts.DbTablePrefix + nameof(TempLayerField));
b.ConfigureByConvention();
b.HasKey(e => e.Id);
b.Property(e => e.Id).AutoGenerateGuidNpgSql();
b.Property(e => e.LayerFieldName)
.IsRequired();
b.Property(e => e.TableName)
.IsRequired();
b.Property(e => e.AreSame)
.IsRequired()
.HasDefaultValue(false);
b.HasOne(e => e.Layer)
.WithMany(e => e.LayerFields)
.HasForeignKey(e => e.LayerId);
});
TempLayer class is AuditedAggregateRoot<Guid> & IMultiTenant when insert data in this using efcore then throw below error
23502: null value in column "ExtraProperties" violates not-null constraint DETAIL: Detail redacted as it may contain sensitive data. Specify 'Include Error Detail' in the connection string to include this information.
I want to create Auth Server Which is tenant base and another 3 application which is tenant based and is used Auth Server for Authorization and authentication I want both running on tenant like tenant base is come from Auth Server and applicaton database configure as tenant base and also i want separate admins for different application which can be see specific tenants of application.
I want two swagger UI in one swagger there is default apis which are in default in abp.io project like identity server/client,languages,users,roles etc and in other swagger i want only my created app services apis how can i achieve this?