DurableFunctionsMonitor.DotNetBackend
6.2.1
See the version list below for details.
Requires NuGet 2.5 or higher.
dotnet add package DurableFunctionsMonitor.DotNetBackend --version 6.2.1
NuGet\Install-Package DurableFunctionsMonitor.DotNetBackend -Version 6.2.1
<PackageReference Include="DurableFunctionsMonitor.DotNetBackend" Version="6.2.1" />
paket add DurableFunctionsMonitor.DotNetBackend --version 6.2.1
#r "nuget: DurableFunctionsMonitor.DotNetBackend, 6.2.1"
// Install DurableFunctionsMonitor.DotNetBackend as a Cake Addin #addin nuget:?package=DurableFunctionsMonitor.DotNetBackend&version=6.2.1 // Install DurableFunctionsMonitor.DotNetBackend as a Cake Tool #tool nuget:?package=DurableFunctionsMonitor.DotNetBackend&version=6.2.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 DfMon 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 DfMon 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 DfMon does. Which means that EasyAuth needs to be configured appropriately for your Function instance, just like for a standalone DfMon 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 DfMon 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 DfMon endpoint are as follows:
- DisableAuthentication - disables all authentication. Make sure you know what you're doing.
- Mode - functional mode for this DfMon endpoint. Currently only
DfmMode.Normal
(default) andDfmMode.ReadOnly
are supported. - AllowedUserNames - list of users, that are allowed to access this DfMon 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.
- AllowedReadOnlyAppRoles - list of App Roles, that are allowed read only access to the 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.
- UserNameClaimName - name of the claim to be used for identifying the user (when matching against AllowedUserNames). By default,
preferred_username
claim is used for that, but this setting allows to specify some other custom claim. - RolesClaimName - name of the claim to be used for identifying user's app roles (when matching against AllowedAppRoles). By default,
roles
claim is used for that, but this setting allows to specify some other custom claim.
Alternatively you can call DfmEndpoint.Setup();
with no parameters and configure your DfMon 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 | netcoreapp2.1 is compatible. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
-
- Fluid.Core (>= 2.1.4)
- Microsoft.Azure.WebJobs.Extensions.DurableTask (>= 2.9.0)
- Microsoft.IdentityModel.Protocols.OpenIdConnect (>= 6.10.2)
- Microsoft.NET.Sdk.Functions (>= 4.1.3)
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.6.0 | 9,941 | 12/7/2024 | |
6.6.0-beta1 | 175 | 12/2/2024 | |
6.5.2-beta1 | 145 | 11/2/2024 | |
6.5.0 | 113,315 | 6/30/2024 | |
6.5.0-beta4 | 285 | 6/29/2024 | |
6.5.0-beta3 | 211 | 6/28/2024 | |
6.4.0 | 55,984 | 3/9/2024 | |
6.4.0-beta4 | 210 | 3/3/2024 | |
6.4.0-beta3 | 290 | 12/25/2023 | |
6.4.0-beta2 | 545 | 12/7/2023 | |
6.4.0-beta1 | 212 | 12/1/2023 | |
6.3.0 | 135,586 | 7/7/2023 | |
6.3.0-beta2 | 191 | 12/7/2023 | |
6.2.1 | 26,765 | 4/26/2023 | |
6.2.0 | 2,273 | 4/15/2023 | |
6.1.1 | 29,512 | 2/13/2023 | |
6.1.0 | 3,365 | 2/5/2023 | |
6.0.0 | 29,804 | 11/21/2022 | |
5.5.0 | 94,622 | 6/6/2022 | |
5.4.1 | 4,718 | 5/16/2022 | |
5.4.0 | 1,496 | 5/4/2022 | |
5.3.0 | 5,881 | 3/23/2022 | |
5.2.0 | 4,475 | 2/23/2022 | |
5.1.1 | 23,865 | 11/8/2021 | |
5.0.0 | 8,393 | 9/28/2021 | |
4.8.2 | 4,803 | 9/19/2021 | |
4.8.0 | 3,205 | 8/26/2021 | |
4.7.1 | 2,827 | 8/3/2021 | |
4.7.0 | 1,136 | 7/29/2021 | |
4.6.0 | 2,216 | 6/27/2021 | |
4.5.0 | 2,513 | 5/30/2021 | |
4.4.0 | 2,580 | 4/21/2021 | |
4.3.0 | 1,687 | 3/30/2021 | |
4.2.0 | 2,070 | 2/28/2021 | |
4.1.0 | 6,144 | 2/7/2021 | |
4.0.0 | 1,275 | 1/14/2021 | |
3.9.0 | 903 | 12/18/2020 | |
3.8.0 | 581 | 12/4/2020 | |
3.7.0 | 742 | 11/18/2020 |