public string Get(string skillName) { var manifests = StartupHelpers.GetSkillManifestInstances(_serviceProvider); var foundManifest = manifests.Find(x => x.name.Equals(skillName)); return(JsonConvert.SerializeObject(foundManifest)); }
public void Configure( IServiceProvider serviceProvider, IApplicationBuilder app, IWebHostEnvironment env, IHostApplicationLifetime appLifetime, ILoggerFactory loggerFactory, IApiVersionDescriptionProvider apiVersionProvider, MsSqlStreamStore streamStore, ApiDataDogToggle datadogToggle, ApiDebugDataDogToggle debugDataDogToggle, HealthCheckService healthCheckService) { StartupHelpers.CheckDatabases(healthCheckService, DatabaseTag).GetAwaiter().GetResult(); StartupHelpers.EnsureSqlStreamStoreSchema <Startup>(streamStore, loggerFactory); app .UseDatadog <Startup>( serviceProvider, loggerFactory, datadogToggle, debugDataDogToggle, _configuration["DataDog:ServiceName"]) .UseDefaultForApi(new StartupUseOptions { Common = { ApplicationContainer = _applicationContainer, ServiceProvider = serviceProvider, HostingEnvironment = env, ApplicationLifetime = appLifetime, LoggerFactory = loggerFactory, }, Api = { VersionProvider = apiVersionProvider, Info = groupName => $"exira.com - Dns API {groupName}", CustomExceptionHandlers = new IExceptionHandler[] { new DomainExceptionHandler(), new Exceptions.ApiExceptionHandler(), new AggregateNotFoundExceptionHandling(), new WrongExpectedVersionExceptionHandling(), new InvalidTopLevelDomainExceptionHandling(), new InvalidRecordTypeExceptionHandling(), new InvalidServiceTypeExceptionHandling(), new ValidationExceptionHandler(), } }, Server = { PoweredByName = "exira.com", ServerName = "exira.com" }, MiddlewareHooks = { AfterMiddleware = x => x.UseMiddleware <AddNoCacheHeadersMiddleware>(), }, }); }
public void ConfigureServices(IServiceCollection services) { services.ConfigureRootConfiguration(Configuration); ///// Add single tenant configuration services.AddSingleTenantConfiguration(Configuration, Environment, Logger, StartupHelpers.DefaultIdentityDbContextOptions(Configuration), StartupHelpers.DefaultIdentityOptions(), StartupHelpers.DefaultIdentityServerOptions(), StartupHelpers.DefaultIdentityServerConfigurationOptions(Configuration), StartupHelpers.DefaultIdentityServerOperationalStoreOptions(Configuration) ); /// Add multi tenant configuration /// Seeding data requires that you build the identity migration using the <see cref="MultiTenantUserIdentityDbContext"/> /// The _layout page requires the SignInManager to have the type specified to use the <see cref="MultiTenantUserIdentity"/> //services.AddMultiTenantConfiguration(Configuration, Environment, Logger, // StartupHelpers.DefaultIdentityDbContextOptions(Configuration), // StartupHelpers.DefaultIdentityOptions(), // StartupHelpers.DefaultIdentityServerOptions(), // StartupHelpers.DefaultIdentityServerConfigurationOptions(Configuration), // StartupHelpers.DefaultIdentityServerOperationalStoreOptions(Configuration) // ); // Add email senders which is currently setup for SendGrid and SMTP services.AddEmailSenders(Configuration); // Add services for authentication, including Identity model, IdentityServer4 and external providers services.AddAuthenticationServices(Configuration); // Add authorization policies for MVC services.AddAuthorizationPolicies(); }
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseSerilog() .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup <Startup>() .UseUrls(StartupHelpers.GetRunUrl(args) ?? "http://localhost:8002"); });
public void ConfigureServices(IServiceCollection services) { // Get Configuration services.ConfigureRootConfiguration(Configuration); var rootConfiguration = services.BuildServiceProvider().GetService <IRootConfiguration>(); ///// Manual configuration //services // .AddCustomConfiguration // <AdminIdentityDbContext, IdentityServerConfigurationDbContext, IdentityServerPersistedGrantDbContext, AdminLogDbContext> // (HostingEnvironment, // StartupHelpers.DefaultIdentityDbContextOptions(Configuration), // StartupHelpers.DefaultIdentityServerConfigurationOptions(Configuration), // StartupHelpers.DefaultIdentityServerOperationalStoreOptions(Configuration), // StartupHelpers.DefaultLogDbContextOptions(Configuration)) // .AddCustomIdentity // <AdminIdentityDbContext, UserIdentity, UserIdentityRole> // (StartupHelpers.DefaultIdentityOptions(Configuration)) // .AddCustomAdminAspNetIdentityServices // <AdminIdentityDbContext, IdentityServerPersistedGrantDbContext, UserDto<string>, string, RoleDto<string>, string, string, string, // UserIdentity, UserIdentityRole, string, UserIdentityUserClaim, UserIdentityUserRole, // UserIdentityUserLogin, UserIdentityRoleClaim, UserIdentityUserToken, // UsersDto<UserDto<string>, string>, RolesDto<RoleDto<string>, string>, UserRolesDto<RoleDto<string>, string, string>, // UserClaimsDto<string>, UserProviderDto<string>, UserProvidersDto<string>, UserChangePasswordDto<string>, // RoleClaimsDto<string>, UserClaimDto<string>, RoleClaimDto<string>>(); ///// Single tenant configuration (default) services.AddSingleTenantConfiguration(HostingEnvironment, StartupHelpers.DefaultIdentityDbContextOptions(Configuration), StartupHelpers.DefaultIdentityServerConfigurationOptions(Configuration), StartupHelpers.DefaultIdentityServerOperationalStoreOptions(Configuration), StartupHelpers.DefaultLogDbContextOptions(Configuration), StartupHelpers.DefaultIdentityOptions(Configuration)); /// Multi Tenant configuration //services.AddMultiTenantConfiguration(HostingEnvironment, // StartupHelpers.DefaultIdentityDbContextOptions(Configuration), // StartupHelpers.DefaultIdentityServerConfigurationOptions(Configuration), // StartupHelpers.DefaultIdentityServerOperationalStoreOptions(Configuration), // StartupHelpers.DefaultLogDbContextOptions(Configuration), // StartupHelpers.DefaultIdentityOptions(Configuration)); // Add Asp.Net Core Identity Configuration and OpenIdConnect auth as well services.AddAuthenticationServices(HostingEnvironment, rootConfiguration.AdminConfiguration); // Add exception filters in MVC services.AddMvcExceptionFilters(); // Add authorization policies for MVC services.AddAuthorizationPolicies(); services.Configure <SeedData>(Configuration.GetSection(ConfigurationConsts.SeedDataConfigurationKey)); }
public void Configure( IServiceProvider serviceProvider, IApplicationBuilder app, IHostingEnvironment env, IApplicationLifetime appLifetime, ILoggerFactory loggerFactory, IApiVersionDescriptionProvider apiVersionProvider, ApiDataDogToggle datadogToggle, ApiDebugDataDogToggle debugDataDogToggle, MsSqlStreamStore streamStore, HealthCheckService healthCheckService) { StartupHelpers.CheckDatabases(healthCheckService, DatabaseTag).GetAwaiter().GetResult(); StartupHelpers.EnsureSqlStreamStoreSchema <Startup>(streamStore, loggerFactory); app .UseDatadog <Startup>( serviceProvider, loggerFactory, datadogToggle, debugDataDogToggle, _configuration["DataDog:ServiceName"]) .UseDefaultForApi(new StartupUseOptions { Common = { ApplicationContainer = _applicationContainer, ServiceProvider = serviceProvider, HostingEnvironment = env, ApplicationLifetime = appLifetime, LoggerFactory = loggerFactory, }, Api = { VersionProvider = apiVersionProvider, Info = groupName => $"exira.com - Account Projector API {groupName}", }, Server = { PoweredByName = "exira.com", ServerName = "exira.com" }, MiddlewareHooks = { AfterMiddleware = x => x.UseMiddleware <AddNoCacheHeadersMiddleware>(), } }); var projectionsManager = serviceProvider.GetRequiredService <IConnectedProjectionsManager>(); projectionsManager.Start(); }
public void Configure( IServiceProvider serviceProvider, IApplicationBuilder app, IHostingEnvironment env, IApplicationLifetime appLifetime, ILoggerFactory loggerFactory, IApiVersionDescriptionProvider apiVersionProvider, MsSqlStreamStore streamStore, ApiDataDogToggle datadogToggle, ApiDebugDataDogToggle debugDataDogToggle, HealthCheckService healthCheckService) { StartupHelpers.CheckDatabases(healthCheckService, DatabaseTag).GetAwaiter().GetResult(); StartupHelpers.EnsureSqlStreamStoreSchema <Startup>(streamStore, loggerFactory); app .UseDatadog <Startup>( serviceProvider, loggerFactory, datadogToggle, debugDataDogToggle, _configuration["DataDog:ServiceName"]) .UseDefaultForApi(new StartupUseOptions { Common = { ApplicationContainer = _applicationContainer, ServiceProvider = serviceProvider, HostingEnvironment = env, ApplicationLifetime = appLifetime, LoggerFactory = loggerFactory }, Api = { VersionProvider = apiVersionProvider, Info = groupName => $"Basisregisters Vlaanderen - Dienstverleningsregister API {groupName}", CustomExceptionHandlers = new [] { new GetOrganisationFailedHandler() } }, MiddlewareHooks = { AfterApiExceptionHandler = x => x.UseAuthentication(), AfterMiddleware = x => x.UseMiddleware <AddNoCacheHeadersMiddleware>(), } }); }
public void Configure( IServiceProvider serviceProvider, IApplicationBuilder app, IHostingEnvironment env, IApplicationLifetime appLifetime, ILoggerFactory loggerFactory, IApiVersionDescriptionProvider apiVersionProvider, ApiDataDogToggle datadogToggle, ApiDebugDataDogToggle debugDataDogToggle, MsSqlStreamStore streamStore) { StartupHelpers.EnsureSqlStreamStoreSchema <Startup>(streamStore, loggerFactory); if (datadogToggle.FeatureEnabled) { if (debugDataDogToggle.FeatureEnabled) { StartupHelpers.SetupSourceListener(serviceProvider.GetRequiredService <TraceSource>()); } app.UseDataDogTracing( serviceProvider.GetRequiredService <TraceSource>(), _configuration["DataDog:ServiceName"], pathToCheck => pathToCheck != "/"); } app.UseDefaultForApi(new StartupOptions { ApplicationContainer = _applicationContainer, ServiceProvider = serviceProvider, HostingEnvironment = env, ApplicationLifetime = appLifetime, LoggerFactory = loggerFactory, Api = { VersionProvider = apiVersionProvider, Info = groupName => $"Basisregisters Vlaanderen - Bank Account Number Registry API {groupName}", CustomExceptionHandlers = new IExceptionHandler[] { new ValidationExceptionHandling(), } }, MiddlewareHooks = { AfterMiddleware = x => x.UseMiddleware <AddNoCacheHeadersMiddleware>(), }, }); }
public void ConfigureServices(IServiceCollection services) { var adminApiConfiguration = Configuration.GetSection(nameof(AdminApiConfiguration)).Get <AdminApiConfiguration>(); services.AddSingleton(adminApiConfiguration); ///// Single Tenant configuration services.AddSingleTenantConfiguration(HostingEnvironment, StartupHelpers.DefaultIdentityDbContextOptions(Configuration), StartupHelpers.DefaultIdentityServerConfigurationOptions(Configuration), StartupHelpers.DefaultIdentityServerOperationalStoreOptions(Configuration), StartupHelpers.DefaultLogDbContextOptions(Configuration), StartupHelpers.DefaultIdentityOptions(Configuration)); /// Multi Tenant configuration //services.AddMultiTenantConfiguration(HostingEnvironment, // StartupHelpers.DefaultIdentityDbContextOptions(Configuration), // StartupHelpers.DefaultIdentityServerConfigurationOptions(Configuration), // StartupHelpers.DefaultIdentityServerOperationalStoreOptions(Configuration), // StartupHelpers.DefaultLogDbContextOptions(Configuration), // StartupHelpers.DefaultIdentityOptions(Configuration)); //services.AddDbContexts<AdminIdentityDbContext, IdentityServerConfigurationDbContext, IdentityServerPersistedGrantDbContext, AdminLogDbContext>(Configuration); services.AddScoped <ControllerExceptionFilterAttribute>(); services.AddApiAuthentication(adminApiConfiguration); services.AddAuthorizationPolicies(); services.AddSwaggerGen(options => { options.SwaggerDoc(ApiConfigurationConsts.ApiVersionV1, new Info { Title = ApiConfigurationConsts.ApiName, Version = ApiConfigurationConsts.ApiVersionV1 }); options.AddSecurityDefinition("oauth2", new OAuth2Scheme { Flow = "implicit", AuthorizationUrl = $"{adminApiConfiguration.IdentityServerBaseUrl}/connect/authorize", Scopes = new Dictionary <string, string> { { adminApiConfiguration.OidcApiName, ApiConfigurationConsts.ApiName } } }); options.OperationFilter <AuthorizeCheckOperationFilter>(); }); }
public void Configure( IServiceProvider serviceProvider, IApplicationBuilder app, IWebHostEnvironment env, IHostApplicationLifetime appLifetime, ILoggerFactory loggerFactory, IApiVersionDescriptionProvider apiVersionProvider, ApiDataDogToggle datadogToggle, ApiDebugDataDogToggle debugDataDogToggle, HealthCheckService healthCheckService) { StartupHelpers.CheckDatabases(healthCheckService, DatabaseTag).GetAwaiter().GetResult(); app .UseDataDog <Startup>(new DataDogOptions { Common = { ServiceProvider = serviceProvider, LoggerFactory = loggerFactory }, Toggles = { Enable = datadogToggle, Debug = debugDataDogToggle }, Tracing = { ServiceName = _configuration["DataDog:ServiceName"], } }) .UseDefaultForApi(new StartupUseOptions { Common = { ApplicationContainer = _applicationContainer, ServiceProvider = serviceProvider, HostingEnvironment = env, ApplicationLifetime = appLifetime, LoggerFactory = loggerFactory }, Api = { VersionProvider = apiVersionProvider, Info = groupName => $"Basisregisters Vlaanderen - Municipality Registry API {groupName}", CSharpClientOptions = { ClassName = "MunicipalityRegistryProjector", Namespace = "Be.Vlaanderen.Basisregisters" }, TypeScriptClientOptions = { ClassName = "MunicipalityRegistryProjector" } }, MiddlewareHooks = { AfterMiddleware = x => x.UseMiddleware <AddNoCacheHeadersMiddleware>(), } }) .UseProjectionsManager(new ProjectionsManagerOptions { Common = { ServiceProvider = serviceProvider, ApplicationLifetime = appLifetime } }); }
public void Configure( IServiceProvider serviceProvider, IApplicationBuilder app, IWebHostEnvironment env, IHostApplicationLifetime appLifetime, ILoggerFactory loggerFactory, IApiVersionDescriptionProvider apiVersionProvider, ApiDataDogToggle datadogToggle, ApiDebugDataDogToggle debugDataDogToggle, MsSqlStreamStore streamStore, HealthCheckService healthCheckService) { StartupHelpers.CheckDatabases(healthCheckService, DatabaseTag).GetAwaiter().GetResult(); StartupHelpers.EnsureSqlStreamStoreSchema <Startup>(streamStore, loggerFactory); app .UseDataDog <Startup>(new DataDogOptions { Common = { ServiceProvider = serviceProvider, LoggerFactory = loggerFactory }, Toggles = { Enable = datadogToggle, Debug = debugDataDogToggle }, Tracing = { ServiceName = _configuration["DataDog:ServiceName"], } }) .UseDefaultForApi(new StartupUseOptions { Common = { ApplicationContainer = _applicationContainer, ServiceProvider = serviceProvider, HostingEnvironment = env, ApplicationLifetime = appLifetime, LoggerFactory = loggerFactory, }, Api = { VersionProvider = apiVersionProvider, Info = groupName => $"Example Registry Projector API {groupName}", CSharpClientOptions = { ClassName = "ExampleRegistry", Namespace = "ExampleRegistry.Projector" }, TypeScriptClientOptions = { ClassName = "ExampleRegistry" }, }, Server = { PoweredByName = "Vlaamse overheid - Basisregisters Vlaanderen", ServerName = "agentschap Informatie Vlaanderen" }, MiddlewareHooks = { AfterMiddleware = x => x.UseMiddleware <AddNoCacheHeadersMiddleware>(), } }) .UseProjectionsManager(new ProjectionsManagerOptions { Common = { ServiceProvider = serviceProvider, ApplicationLifetime = appLifetime } }); }
public void Configure( IServiceProvider serviceProvider, IApplicationBuilder app, IWebHostEnvironment env, IHostApplicationLifetime appLifetime, ILoggerFactory loggerFactory, IApiVersionDescriptionProvider apiVersionProvider, MsSqlStreamStore streamStore, ApiDataDogToggle datadogToggle, ApiDebugDataDogToggle debugDataDogToggle, HealthCheckService healthCheckService) { StartupHelpers.CheckDatabases(healthCheckService, DatabaseTag).GetAwaiter().GetResult(); StartupHelpers.EnsureSqlStreamStoreSchema <Startup>(streamStore, loggerFactory); app .UseDataDog <Startup>(new DataDogOptions { Common = { ServiceProvider = serviceProvider, LoggerFactory = loggerFactory }, Toggles = { Enable = datadogToggle, Debug = debugDataDogToggle }, Tracing = { ServiceName = _configuration["DataDog:ServiceName"], } }) .UseDefaultForApi(new StartupUseOptions { Common = { ApplicationContainer = _applicationContainer, ServiceProvider = serviceProvider, HostingEnvironment = env, ApplicationLifetime = appLifetime, LoggerFactory = loggerFactory, }, Api = { VersionProvider = apiVersionProvider, Info = groupName => $"exira.com - Dns Projector API {groupName}", CustomExceptionHandlers = new IExceptionHandler[] { new ValidationExceptionHandler(), } }, Server = { PoweredByName = "exira.com", ServerName = "exira.com" }, MiddlewareHooks = { AfterMiddleware = x => x.UseMiddleware <AddNoCacheHeadersMiddleware>(), } }) .UseProjectionsManager(new ProjectionsManagerOptions { Common = { ServiceProvider = serviceProvider, ApplicationLifetime = appLifetime } }); }
public void Configure( IServiceProvider serviceProvider, IApplicationBuilder app, IWebHostEnvironment env, IHostApplicationLifetime appLifetime, ILoggerFactory loggerFactory, IApiVersionDescriptionProvider apiVersionProvider, ApiDataDogToggle datadogToggle, ApiDebugDataDogToggle debugDataDogToggle, HealthCheckService healthCheckService) { StartupHelpers .CheckDatabases(healthCheckService, DatabaseTag) .GetAwaiter() .GetResult(); app .UseDataDog <Startup>(new DataDogOptions { Common = { ServiceProvider = serviceProvider, LoggerFactory = loggerFactory }, Toggles = { Enable = datadogToggle, Debug = debugDataDogToggle }, Tracing = { ServiceName = _configuration["DataDog:ServiceName"], } }) .UseDefaultForApi(new StartupUseOptions { Common = { ApplicationContainer = _applicationContainer, ServiceProvider = serviceProvider, HostingEnvironment = env, ApplicationLifetime = appLifetime, LoggerFactory = loggerFactory, }, Api = { VersionProvider = apiVersionProvider, Info = groupName => $"Basisregisters Vlaanderen - Address Registry API {groupName}", CSharpClientOptions = { ClassName = "AddressRegistry", Namespace = "Be.Vlaanderen.Basisregisters" }, TypeScriptClientOptions = { ClassName = "AddressRegistry" }, CustomExceptionHandlers = new IExceptionHandler[] { new CrabClientValidationExceptionHandler() } }, Server = { PoweredByName = "Vlaamse overheid - Basisregisters Vlaanderen", ServerName = "agentschap Informatie Vlaanderen" } }); }
public void Configure( IServiceProvider serviceProvider, IApplicationBuilder app, IWebHostEnvironment env, IHostApplicationLifetime appLifetime, ILoggerFactory loggerFactory, IApiVersionDescriptionProvider apiVersionProvider, MsSqlStreamStore streamStore, ApiDataDogToggle datadogToggle, ApiDebugDataDogToggle debugDataDogToggle, HealthCheckService healthCheckService) { StartupHelpers.EnsureSqlStreamStoreSchema <Startup>(streamStore, loggerFactory); app .UseDataDog <Startup>(new DataDogOptions { Common = { ServiceProvider = serviceProvider, LoggerFactory = loggerFactory }, Toggles = { Enable = datadogToggle, Debug = debugDataDogToggle }, Tracing = { ServiceName = _configuration["DataDog:ServiceName"], } }) .UseDefaultForApi(new StartupUseOptions { Common = { ApplicationContainer = _applicationContainer, ServiceProvider = serviceProvider, HostingEnvironment = env, ApplicationLifetime = appLifetime, LoggerFactory = loggerFactory, }, Api = { VersionProvider = apiVersionProvider, Info = groupName => $"Basisregisters Vlaanderen - Address Registry API {groupName}", CSharpClientOptions = { ClassName = "AddressRegistryCrabImport", Namespace = "Be.Vlaanderen.Basisregisters" }, TypeScriptClientOptions = { ClassName = "AddressRegistryCrabImport" } }, Server = { PoweredByName = "Vlaamse overheid - Basisregisters Vlaanderen", ServerName = "agentschap Informatie Vlaanderen" }, MiddlewareHooks = { AfterMiddleware = x => x.UseMiddleware <AddNoCacheHeadersMiddleware>(), } }); app.UseIdempotencyDatabaseMigrations() .UseCrabImportMigrations(); MigrationsHelper.Run( _configuration.GetConnectionString("Sequences"), serviceProvider.GetService <ILoggerFactory>()); new LegacyContextMigrationFactory() .CreateMigrator(_configuration, _loggerFactory) .MigrateAsync(new CancellationToken()) .GetAwaiter() .GetResult(); StartupHelpers.CheckDatabases(healthCheckService, DatabaseTag).GetAwaiter().GetResult(); }
public void Configure( IServiceProvider serviceProvider, IApplicationBuilder app, IWebHostEnvironment env, IHostApplicationLifetime appLifetime, ILoggerFactory loggerFactory, IApiVersionDescriptionProvider apiVersionProvider, ApiDataDogToggle datadogToggle, ApiDebugDataDogToggle debugDataDogToggle, HealthCheckService healthCheckService) { StartupHelpers.CheckDatabases(healthCheckService, DatabaseTag).GetAwaiter().GetResult(); app .UseDataDog <Startup>(new DataDogOptions { Common = { ServiceProvider = serviceProvider, LoggerFactory = loggerFactory }, Toggles = { Enable = datadogToggle, Debug = debugDataDogToggle }, Tracing = { ServiceName = _configuration["DataDog:ServiceName"], } }) .UseDefaultForApi(new StartupUseOptions { Common = { ApplicationContainer = _applicationContainer, ServiceProvider = serviceProvider, HostingEnvironment = env, ApplicationLifetime = appLifetime, LoggerFactory = loggerFactory, }, Api = { VersionProvider = apiVersionProvider, Info = groupName => $"Basisregisters.Vlaanderen - Parcel Information Registry API {groupName}", CSharpClientOptions = { ClassName = "ParcelRegistryProjector", Namespace = "Be.Vlaanderen.Basisregisters" }, TypeScriptClientOptions = { ClassName = "ParcelRegistryProjector" } }, Server = { PoweredByName = "Vlaamse overheid - Basisregisters Vlaanderen", ServerName = "Digitaal Vlaanderen" }, MiddlewareHooks = { AfterMiddleware = x => x.UseMiddleware <AddNoCacheHeadersMiddleware>() } }); appLifetime.ApplicationStopping.Register(() => _projectionsCancellationTokenSource.Cancel()); appLifetime.ApplicationStarted.Register(() => { var projectionsManager = _applicationContainer.Resolve <IConnectedProjectionsManager>(); projectionsManager.Resume(_projectionsCancellationTokenSource.Token); }); }