using Elsa.EntityFrameworkCore.Extensions; using Elsa.EntityFrameworkCore.Modules.Management; using Elsa.Extensions; using Elsa.Workflows.Core.Models; using Elsa.Identity.Features; using Elsa.SemanticKernel; var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddElsa(elsa => { // Configure management feature to use EF Core. elsa.UseWorkflowManagement(management => management.UseEntityFrameworkCore(ef => ef.UseSqlite())); // Expose API endpoints. elsa.UseWorkflowsApi(); // Add services for HTTP activities and workflow middleware. elsa.UseHttp(); // Configure identity so that we can create a default admin user. elsa.UseIdentity(identity => { identity.UseAdminUserProvider(); identity.TokenOptions = options => options.SigningKey = "secret-token-signing-key"; }); // Use default authentication (JWT + API Key). elsa.UseDefaultAuthentication(auth => auth.UseAdminApiKey()); // Add Semantic Kernel skill. elsa.AddActivity(); }); // Add Razor pages. builder.Services.AddRazorPages(); var app = builder.Build(); // Configure the HTTP request pipeline. app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseAuthentication(); app.UseAuthorization(); app.UseWorkflowsApi(); app.UseWorkflows(); app.MapRazorPages(); app.Run();