DurableFunctionsMonitor.DotNetBackend
4.7.1
Please, migrate to the latest version (5.0.0 or higher)
See the version list below for details.
Requires NuGet 2.5 or higher.
dotnet add package DurableFunctionsMonitor.DotNetBackend --version 4.7.1
NuGet\Install-Package DurableFunctionsMonitor.DotNetBackend -Version 4.7.1
<PackageReference Include="DurableFunctionsMonitor.DotNetBackend" Version="4.7.1" />
paket add DurableFunctionsMonitor.DotNetBackend --version 4.7.1
#r "nuget: DurableFunctionsMonitor.DotNetBackend, 4.7.1"
// Install DurableFunctionsMonitor.DotNetBackend as a Cake Addin #addin nuget:?package=DurableFunctionsMonitor.DotNetBackend&version=4.7.1 // Install DurableFunctionsMonitor.DotNetBackend as a Cake Tool #tool nuget:?package=DurableFunctionsMonitor.DotNetBackend&version=4.7.1
A monitoring/debugging UI tool for Azure Durable Functions, now also available as a NuGet package.
How to use
This package you can either 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: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) andDfmMode.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 | Versions 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. |
-
- Fluid.Core (>= 1.0.0-beta-9722)
- Microsoft.Azure.WebJobs.Extensions.DurableTask (>= 2.4.0)
- Microsoft.IdentityModel.Protocols.OpenIdConnect (>= 6.8.0)
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.5.2-beta1 | 127 | 11/2/2024 | |
6.5.0 | 97,165 | 6/30/2024 | |
6.5.0-beta4 | 273 | 6/29/2024 | |
6.5.0-beta3 | 199 | 6/28/2024 | |
6.4.0 | 54,483 | 3/9/2024 | |
6.4.0-beta4 | 200 | 3/3/2024 | |
6.4.0-beta3 | 275 | 12/25/2023 | |
6.4.0-beta2 | 530 | 12/7/2023 | |
6.4.0-beta1 | 202 | 12/1/2023 | |
6.3.0 | 134,106 | 7/7/2023 | |
6.3.0-beta2 | 181 | 12/7/2023 | |
6.2.1 | 26,401 | 4/26/2023 | |
6.2.0 | 2,260 | 4/15/2023 | |
6.1.1 | 29,293 | 2/13/2023 | |
6.1.0 | 3,255 | 2/5/2023 | |
6.0.0 | 29,030 | 11/21/2022 | |
5.5.0 | 91,784 | 6/6/2022 | |
5.4.1 | 4,707 | 5/16/2022 | |
5.4.0 | 1,489 | 5/4/2022 | |
5.3.0 | 5,869 | 3/23/2022 | |
5.2.0 | 4,464 | 2/23/2022 | |
5.1.1 | 22,870 | 11/8/2021 | |
5.0.0 | 8,300 | 9/28/2021 | |
4.8.2 | 4,756 | 9/19/2021 | |
4.8.0 | 3,197 | 8/26/2021 | |
4.7.1 | 2,819 | 8/3/2021 | |
4.7.0 | 1,128 | 7/29/2021 | |
4.6.0 | 2,205 | 6/27/2021 | |
4.5.0 | 2,502 | 5/30/2021 | |
4.4.0 | 2,572 | 4/21/2021 | |
4.3.0 | 1,679 | 3/30/2021 | |
4.2.0 | 2,056 | 2/28/2021 | |
4.1.0 | 6,136 | 2/7/2021 | |
4.0.0 | 1,267 | 1/14/2021 | |
3.9.0 | 895 | 12/18/2020 | |
3.8.0 | 573 | 12/4/2020 | |
3.7.0 | 727 | 11/18/2020 |