Skip to content

Latest commit

 

History

History

LLL.DurableTask.Api

LLL.DurableTask.Api Nuget

Exposes orchestration management operations in a REST API.

Depends on

  • Storage
  • Client

Configuration

// Add Durable Task Api services
services.AddDurableTaskApi();
...
app.UseEndpoints(endpoints =>
{
    // Map Durable Task Api endpoints under /api prefix
    // Example of endpoint path: /api/v1/orchestrations
    endpoints.MapDurableTaskApi();
});

Alternatively you can define your own prefix:

app.UseEndpoints(endpoints =>
{
    // Map Durable Task Api endpoints under /tasks-api prefix
    // Example of endpoint path: /tasks-api/v1/orchestrations
    endpoints.MapDurableTaskApi("/tasks-api");
});

The API is integrated by default with ASP.NET Core Authorization Policies. You must configure all Durable task policies and their requirements, like the example below:

services.AddAuthorization(c =>
{
    c.AddPolicy(DurableTaskPolicy.Entrypoint, p => p.RequireAssertion(x => true));
    c.AddPolicy(DurableTaskPolicy.Read, p => p.RequireRole("Reader"));
    c.AddPolicy(DurableTaskPolicy.ReadHistory, p => p.RequireRole("Reader"));
    c.AddPolicy(DurableTaskPolicy.Create, p => p.RequireRole("Administrator"));
    c.AddPolicy(DurableTaskPolicy.Terminate, p => p.RequireRole("Administrator"));
    c.AddPolicy(DurableTaskPolicy.RaiseEvent, p => p.RequireRole("Administrator"));
    c.AddPolicy(DurableTaskPolicy.Purge, p => p.RequireRole("Administrator"));
});

Alternatively, you can disable authorization integration on non production environments:

services.AddDurableTaskApi(options =>
{
    options.DisableAuthorization = true;
});

Cross-Origin Requests (CORS)

CORS configuration is required if you run Durable Task API and Durable Task UI from different domains.

To configure CORS, please follow Enable Cross-Origin Requests (CORS) in ASP.NET Core .

Durable Task API requires http methods: GET, POST, DELETE.