DurableFunctionsMonitor.DotNetBackend 5.0.0

There is a newer version of this package available.
See the version list below for details.

Requires NuGet 2.5 or higher.

dotnet add package DurableFunctionsMonitor.DotNetBackend --version 5.0.0
NuGet\Install-Package DurableFunctionsMonitor.DotNetBackend -Version 5.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DurableFunctionsMonitor.DotNetBackend" Version="5.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DurableFunctionsMonitor.DotNetBackend --version 5.0.0
#r "nuget: DurableFunctionsMonitor.DotNetBackend, 5.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. 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=5.0.0

// Install DurableFunctionsMonitor.DotNetBackend as a Cake Tool
#tool nuget:?package=DurableFunctionsMonitor.DotNetBackend&version=5.0.0

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.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp1.0 was computed.  netcoreapp1.1 was computed.  netcoreapp2.0 was computed.  netcoreapp2.1 is compatible.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard1.3 is compatible.  netstandard1.4 was computed.  netstandard1.5 was computed.  netstandard1.6 was computed.  netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen30 was computed.  tizen40 was computed.  tizen60 was computed. 
Universal Windows Platform uap was computed.  uap10.0 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
6.4.0 23,034 3/9/2024
6.4.0-beta4 115 3/3/2024
6.4.0-beta3 215 12/25/2023
6.4.0-beta2 432 12/7/2023
6.4.0-beta1 129 12/1/2023
6.3.0 115,087 7/7/2023
6.3.0-beta2 109 12/7/2023
6.2.1 25,150 4/26/2023
6.2.0 2,190 4/15/2023
6.1.1 27,834 2/13/2023
6.1.0 2,868 2/5/2023
6.0.0 24,444 11/21/2022
5.5.0 78,592 6/6/2022
5.4.1 4,660 5/16/2022
5.4.0 1,444 5/4/2022
5.3.0 5,787 3/23/2022
5.2.0 4,422 2/23/2022
5.1.1 17,682 11/8/2021
5.0.0 8,030 9/28/2021
4.8.2 4,460 9/19/2021
4.8.0 3,121 8/26/2021
4.7.1 2,799 8/3/2021
4.7.0 1,091 7/29/2021
4.6.0 2,158 6/27/2021
4.5.0 2,465 5/30/2021
4.4.0 2,532 4/21/2021
4.3.0 1,603 3/30/2021
4.2.0 2,002 2/28/2021
4.1.0 6,093 2/7/2021
4.0.0 1,224 1/14/2021
3.9.0 853 12/18/2020
3.8.0 532 12/4/2020
3.7.0 682 11/18/2020