DurableFunctionsMonitor.DotNetBackend 4.5.0

DurableFunctionsMonitor.DotNetBackend

Requires NuGet 2.5 or higher.

Install-Package DurableFunctionsMonitor.DotNetBackend -Version 4.5.0
dotnet add package DurableFunctionsMonitor.DotNetBackend --version 4.5.0
<PackageReference Include="DurableFunctionsMonitor.DotNetBackend" Version="4.5.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DurableFunctionsMonitor.DotNetBackend --version 4.5.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: DurableFunctionsMonitor.DotNetBackend, 4.5.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install DurableFunctionsMonitor.DotNetBackend as a Cake Addin
#addin nuget:?package=DurableFunctionsMonitor.DotNetBackend&version=4.5.0

// Install DurableFunctionsMonitor.DotNetBackend as a Cake Tool
#tool nuget:?package=DurableFunctionsMonitor.DotNetBackend&version=4.5.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

A monitoring/debugging UI tool for Azure Durable Functions, now also available as a NuGet package.

How to use

This package you can either Deploy to Azure or install into your own Azure Functions .Net Core project:

  • dotnet add package DurableFunctionsMonitor.DotNetBackend
  • Make sure AzureWebJobsStorage config setting is set correctly - it should point to a Storage where your Task Hub(s) reside.
  • Invoke DfmEndpoint.Setup(); method at your Function's startup. E.g. like this:
	[assembly: WebJobsStartup(typeof(StartupNs.Startup))]
	namespace StartupNs 
	{
		public class Startup : IWebJobsStartup
		{
			public void Configure(IWebJobsBuilder builder)
			{
				DfmEndpoint.Setup();
			}
		}
	}
  • Now DFM endpoint should become available at your Function's root URL, which is typically https://my-func/api (or https://my-func/my-route-prefix, if you've customized routePrefix setting in your host.json)
    NOTE: by default it will overshadow all your existing HTTP-triggered functions. If you don't want that to happen, add DurableFunctionsMonitorRoutePrefix setting to your CSPROJ-file:

    image

    This will make DFM be served from https://my-func/api/my-durable-functions-monitor.

IMPORTANT1: that endpoint still does all the AuthN/AuthZ logic, in the same way as standalone DFM does. Which means that EasyAuth needs to be configured appropriately for your Function instance, just like for a standalone DFM instance. If you do want to disable AuthN/AuthZ for that endpoint, either set DFM_NONCE config setting to i_sure_know_what_i_am_doing or call DfmEndpoint.Setup() method like this:

     DfmEndpoint.Setup(new DfmSettings { DisableAuthentication = true });

IMPORTANT2: a person who is able to access your DFM endpoint can potentially also access all HTTP-triggered endpoints in your project. Make sure you configure AuthN/AuthZ properly.

IMPORTANT3: by default the endpoint exposes all Task Hubs in the underlying Storage account. Restrict the list of allowed Task Hubs either via DFM_HUB_NAME config setting (takes a comma-separated list) or via extensions.durableTask.hubName setting in your host.json.

Additional optional properties of DfmSettings class to further configure your DFM endpoint are as follows:

  • DisableAuthentication - disables all authentication. Make sure you know what you're doing.
  • Mode - functional mode for this DFM endpoint. Currently only DfmMode.Normal (default) and DfmMode.ReadOnly are supported.
  • AllowedUserNames - list of users, that are allowed to access this DFM endpoint. You typically put emails into here. Once set, the incoming access token is expected to contain one of these names in its 'preferred_username' claim.
  • AllowedAppRoles - list of App Roles, that are allowed to access DurableFunctionsMonitor endpoint. Users/Groups then need to be assigned one of these roles via AAD Enterprise Applications->[your AAD app]->Users and Groups tab. Once set, the incoming access token is expected to contain one of these in its 'roles' claim.
  • CustomTemplatesFolderName - folder where to search for custom tab/html templates. Must be a part of your Functions project and be adjacent to your host.json file.

Alternatively you can call DfmEndpoint.Setup(); with no parameters and configure your DFM endpoint with config settings (environment variables). The list of all supported config settings can be found here.

A monitoring/debugging UI tool for Azure Durable Functions, now also available as a NuGet package.

How to use

This package you can either Deploy to Azure or install into your own Azure Functions .Net Core project:

  • dotnet add package DurableFunctionsMonitor.DotNetBackend
  • Make sure AzureWebJobsStorage config setting is set correctly - it should point to a Storage where your Task Hub(s) reside.
  • Invoke DfmEndpoint.Setup(); method at your Function's startup. E.g. like this:
	[assembly: WebJobsStartup(typeof(StartupNs.Startup))]
	namespace StartupNs 
	{
		public class Startup : IWebJobsStartup
		{
			public void Configure(IWebJobsBuilder builder)
			{
				DfmEndpoint.Setup();
			}
		}
	}
  • Now DFM endpoint should become available at your Function's root URL, which is typically https://my-func/api (or https://my-func/my-route-prefix, if you've customized routePrefix setting in your host.json)
    NOTE: by default it will overshadow all your existing HTTP-triggered functions. If you don't want that to happen, add DurableFunctionsMonitorRoutePrefix setting to your CSPROJ-file:

    image

    This will make DFM be served from https://my-func/api/my-durable-functions-monitor.

IMPORTANT1: that endpoint still does all the AuthN/AuthZ logic, in the same way as standalone DFM does. Which means that EasyAuth needs to be configured appropriately for your Function instance, just like for a standalone DFM instance. If you do want to disable AuthN/AuthZ for that endpoint, either set DFM_NONCE config setting to i_sure_know_what_i_am_doing or call DfmEndpoint.Setup() method like this:

     DfmEndpoint.Setup(new DfmSettings { DisableAuthentication = true });

IMPORTANT2: a person who is able to access your DFM endpoint can potentially also access all HTTP-triggered endpoints in your project. Make sure you configure AuthN/AuthZ properly.

IMPORTANT3: by default the endpoint exposes all Task Hubs in the underlying Storage account. Restrict the list of allowed Task Hubs either via DFM_HUB_NAME config setting (takes a comma-separated list) or via extensions.durableTask.hubName setting in your host.json.

Additional optional properties of DfmSettings class to further configure your DFM endpoint are as follows:

  • DisableAuthentication - disables all authentication. Make sure you know what you're doing.
  • Mode - functional mode for this DFM endpoint. Currently only DfmMode.Normal (default) and DfmMode.ReadOnly are supported.
  • AllowedUserNames - list of users, that are allowed to access this DFM endpoint. You typically put emails into here. Once set, the incoming access token is expected to contain one of these names in its 'preferred_username' claim.
  • AllowedAppRoles - list of App Roles, that are allowed to access DurableFunctionsMonitor endpoint. Users/Groups then need to be assigned one of these roles via AAD Enterprise Applications->[your AAD app]->Users and Groups tab. Once set, the incoming access token is expected to contain one of these in its 'roles' claim.
  • CustomTemplatesFolderName - folder where to search for custom tab/html templates. Must be a part of your Functions project and be adjacent to your host.json file.

Alternatively you can call DfmEndpoint.Setup(); with no parameters and configure your DFM endpoint with config settings (environment variables). The list of all supported config settings can be found here.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
4.5.0 742 5/30/2021
4.4.0 1,275 4/21/2021
4.3.0 484 3/30/2021
4.2.0 815 2/28/2021
4.1.0 1,894 2/7/2021
4.0.0 851 1/14/2021
3.9.0 459 12/18/2020
3.8.0 184 12/4/2020
3.7.0 174 11/18/2020