Reimaginate.DataHub.AspNetCore
1.3.0-rc.48
dotnet add package Reimaginate.DataHub.AspNetCore --version 1.3.0-rc.48
NuGet\Install-Package Reimaginate.DataHub.AspNetCore -Version 1.3.0-rc.48
<PackageReference Include="Reimaginate.DataHub.AspNetCore" Version="1.3.0-rc.48" />
<PackageVersion Include="Reimaginate.DataHub.AspNetCore" Version="1.3.0-rc.48" />
<PackageReference Include="Reimaginate.DataHub.AspNetCore" />
paket add Reimaginate.DataHub.AspNetCore --version 1.3.0-rc.48
#r "nuget: Reimaginate.DataHub.AspNetCore, 1.3.0-rc.48"
#:package Reimaginate.DataHub.AspNetCore@1.3.0-rc.48
#addin nuget:?package=Reimaginate.DataHub.AspNetCore&version=1.3.0-rc.48&prerelease
#tool nuget:?package=Reimaginate.DataHub.AspNetCore&version=1.3.0-rc.48&prerelease
Reimaginate.DataHub.AspNetCore
ASP.NET Core endpoint helpers for hosting DataHub APIs in Azure Container Apps and other web hosts.
Use MapDataHubClientEndpoint and MapDataHubCliEndpoint to expose DataHub request endpoints with structured diagnostic error responses.
See DataHub client authentication for full client and host configuration.
Shared key client authorization:
app.MapDataHubClientEndpoint("/api/Client", options =>
{
options.AuthorizeAsync = (request, _) =>
{
var expectedKey = builder.Configuration["x-functions-key"];
var suppliedKey = request.Headers["x-functions-key"].FirstOrDefault();
return Task.FromResult(!string.IsNullOrEmpty(expectedKey) && expectedKey == suppliedKey);
};
});
Microsoft Entra client authorization:
builder.Services.AddDataHubClientAzureAdAuthorization(options =>
{
options.TenantId = "<tenant-id>";
options.Audience = "api://<datahub-api-client-id>";
options.AllowedClientIds = new[] { "<caller-application-client-id>" };
options.AllowedObjectIds = new[] { "<managed-identity-object-id>" };
});
app.MapDataHubClientEndpoint("/api/Client", options =>
{
options.UseAzureAdBearerAuthorization();
});
The endpoint rejects delegated user tokens and only accepts app or managed identity tokens whose azp, appid, or oid claim appears in the configured allow-list.
CLI authentication:
builder.Services.AddDataHubCliAzureAdAuthentication(options =>
{
options.TenantId = "<tenant-id>";
options.Audience = "api://7a3a7b0c-3f0b-43dd-b45f-487f1060ee91";
options.RequiredScope = "datahub_cli";
});
app.MapDataHubCliEndpoint("/api/CLI", options =>
{
options.UseAzureAdCliAuthentication();
});
The CLI endpoint accepts delegated Microsoft Entra user tokens only. It rejects app-only tokens, requires the configured datahub_cli scope, resolves the token to a registered DataHub user by tenant plus Entra object id, and then relies on DataHub roles and permissions for command authorization. The standard DataHub CLI path uses the shared Reimaginate/DataHub app registration, so customers do not create their own app registration for CLI sign-in; tenant admin consent may still be required.
Customer administrators sign in through the DataHub CLI. The CLI uses MSAL to request the delegated API scope:
datahub profiles set-target datahub --profile <name> --url <datahub-cli-url> --tenant <tenant-id>
datahub login --profile <name>
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- FluentValidation (>= 12.1.1)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 8.0.25)
- Newtonsoft.Json (>= 13.0.4)
- Reimaginate.DataHub (>= 1.3.0-rc.48)
- Reimaginate.DataHub.SharedModels (>= 1.3.0-rc.48)
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 |
|---|---|---|
| 1.3.0-rc.48 | 26 | 6/9/2026 |
| 1.3.0-rc.47 | 30 | 6/9/2026 |
| 1.3.0-rc.46 | 29 | 6/9/2026 |
| 1.3.0-rc.45 | 37 | 6/9/2026 |
| 1.3.0-rc.44 | 32 | 6/9/2026 |
| 1.3.0-rc.43 | 36 | 6/9/2026 |
| 1.3.0-rc.42 | 55 | 6/7/2026 |
| 1.3.0-rc.41 | 45 | 6/7/2026 |
| 1.3.0-rc.40 | 50 | 6/7/2026 |
| 1.3.0-rc.39 | 56 | 6/7/2026 |
| 1.3.0-rc.38 | 52 | 6/7/2026 |
| 1.3.0-rc.37 | 46 | 6/7/2026 |
| 1.3.0-rc.36 | 45 | 6/6/2026 |
| 1.3.0-rc.35 | 47 | 6/6/2026 |
| 1.3.0-rc.34 | 50 | 6/6/2026 |
| 1.3.0-rc.33 | 45 | 6/6/2026 |
| 1.3.0-rc.32 | 47 | 6/5/2026 |
| 1.3.0-rc.31 | 47 | 6/5/2026 |
| 1.3.0-rc.30 | 56 | 6/5/2026 |
| 1.3.0-rc.29 | 51 | 6/5/2026 |