Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions benchmarks/Ark.Tools.Benchmarks/packages.lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -1041,6 +1041,8 @@
"Asp.Versioning.Http": "[10.0.0, )",
"Asp.Versioning.Mvc.ApiExplorer": "[10.0.0, )",
"Asp.Versioning.OData.ApiExplorer": "[10.0.0-rc.1, )",
"AspNetCore.HealthChecks.UI": "[9.0.0, )",
"AspNetCore.HealthChecks.UI.InMemory.Storage": "[9.0.0, )",
"FluentValidation": "[12.1.1, )",
"Hellang.Middleware.ProblemDetails": "[6.5.1, )",
"Microsoft.AspNetCore.OData": "[10.0.0-preview.2, )",
Expand Down Expand Up @@ -1080,12 +1082,9 @@
"AspNetCore.HealthChecks.Oracle": "[9.0.0, )",
"AspNetCore.HealthChecks.Publisher.ApplicationInsights": "[9.0.0, )",
"AspNetCore.HealthChecks.SqlServer": "[9.0.0, )",
"AspNetCore.HealthChecks.UI": "[9.0.0, )",
"AspNetCore.HealthChecks.UI.Client": "[9.0.0, )",
"AspNetCore.HealthChecks.UI.InMemory.Storage": "[9.0.0, )",
"Azure.Identity": "[1.21.0, )",
"Azure.Messaging.ServiceBus": "[7.20.2, )",
"KubernetesClient": "[19.0.2, )",
"Microsoft.ApplicationInsights": "[2.23.0, )"
}
},
Expand Down
2 changes: 1 addition & 1 deletion docs/mediator-framework/progress/tasks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ the framework libraries.
3. [x] AZF-01 → [x] AZF-02 → [x] AZF-03.
4. [x] AZF-04 → [x] AZF-05.
5. [x] [AZF-06](azure-functions/AZF-06-files-streaming.md) → [x] [AZF-07](azure-functions/AZF-07-one-way-rebus.md) (independent after AZF-05).
6. [ ] AZF-08.
6. [x] AZF-08.
Comment thread
AndreaCuneo marked this conversation as resolved.
7. [ ] AZF-10. AZF-09 remains deferred until AZD-11 is reopened.

Also see [`../future-improvements.md`](../future-improvements.md) (WebApplicationFactory auth substitution, AoT sample, N6, N9).
Expand Down
2 changes: 2 additions & 0 deletions samples/Ark.MediatorFramework.Sample/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,8 @@ Rebus client. Use a namespace with `DefaultAzureCredential` in managed
environments, or a connection string from external configuration for local use.
The Function process has no input queue, workers, subscriptions, handlers, or
request/reply bus semantics; messages are consumed by the separate processor.
The generated anonymous `GET /healthCheck` endpoint executes the registered
health checks.

## gRPC operations panel

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<PackageReference Include="Ark.Tools.MediatorFramework.AzureFunctions" />
<PackageReference Include="Ark.Tools.MediatorFramework.Rebus" />
<PackageReference Include="Ark.Tools.Rebus" />
<PackageReference Include="Ark.Tools.AspNetCore.HealthChecks" />
<ProjectReference Include="..\Ark.MediatorFramework.Sample.Application\Ark.MediatorFramework.Sample.Application.csproj" />
<ProjectReference Include="..\Ark.MediatorFramework.Sample.RebusProcessor\Ark.MediatorFramework.Sample.RebusProcessor.csproj" />
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
using Ark.MediatorFramework.Sample.Application;
using Ark.MediatorFramework.Sample.RebusProcessor;

using Ark.Tools.Solid.Authorization;

using Azure.Identity;

using Rebus.Config;
Expand Down Expand Up @@ -31,6 +33,8 @@ public static Container BuildContainer(string? serviceBusConnectionString)

var container = new Container();
ApplicationComposition.Register(container, useSqlStore: false);
container.RegisterAuthorization();
container.RegisterAuthorizationHandler<ScopeAuthorizationHandler>();
Comment thread
AndreaCuneo marked this conversation as resolved.
ApplicationComposition.RegisterOutboundRebus(
container,
transport => ConfigureTransport(transport, serviceBusConnectionString),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@

using Ark.MediatorFramework.Sample.Application;
using Ark.MediatorFramework.AzureFunctions;
using Ark.Tools.AspNetCore.HealthChecks;

using Microsoft.AspNetCore.Authorization;
using Microsoft.Azure.Functions.Worker.Builder;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
Expand Down Expand Up @@ -31,7 +33,14 @@ public static void Main(string[] args)
var rebusContainer = AzureFunctionsRebusComposition.BuildContainer(serviceBusConnectionString);
#pragma warning restore CA2000
builder.Services.AddArkAzureFunctions(rebusContainer);
builder.Services.AddArkHealthChecks();
builder.Services.AddArkAzureFunctionsBearerAuthentication();
builder.Services.AddAuthorization(options =>
{
options.DefaultPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
});
builder.Services.AddHostedService(_ => new AzureFunctionsRebusHostedService(rebusContainer));

builder.Build().Run();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,67 @@
"resolved": "18.7.23",
"contentHash": "dyj6z8m+LFjpeH69hdnciCcRCmD0YgMlvuQEywiEshjqj/blgQ+PuWX8Vd5gkWQFoBN4e+TFxx6DvGNSv/gIKg=="
},
"AspNetCore.HealthChecks.AzureServiceBus": {
"type": "Transitive",
"resolved": "9.0.0",
"contentHash": "Uzml9qWAvN6xPJejdTLznx9SIczKs/exieiJCU0Kjivt4ZTcsLdE3u2g8HJr0VWhguQad2mpGkwXtQ9nWfkm4g==",
"dependencies": {
"Azure.Messaging.ServiceBus": "7.17.0",
"Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.11"
}
},
"AspNetCore.HealthChecks.Network": {
"type": "Transitive",
"resolved": "9.0.0",
"contentHash": "Lke7ksxhzZK8qZhSrmxnhdOHkKInzVIdGk7JBAnROQ6M66nuO9ja6ShC0osw83oE+GZazkO+F36gfwD8HlHrXA==",
"dependencies": {
"Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.11",
"SSH.NET": "2023.0.0"
}
},
"AspNetCore.HealthChecks.Oracle": {
"type": "Transitive",
"resolved": "9.0.0",
"contentHash": "q+vhCRPgxWviMtybuJMTXxM2GzA2/h2Cm+LJyafipxVV7iDCb8uTV41E8CZ6XFJhZfZ0VIEhzE3IAL2m4i+t7g==",
"dependencies": {
"Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.11",
"Oracle.ManagedDataAccess.Core": "3.21.120"
}
},
"AspNetCore.HealthChecks.Publisher.ApplicationInsights": {
"type": "Transitive",
"resolved": "9.0.0",
"contentHash": "v2GAyHPxJQIH8mBD5bF4GQXvYODMOOb30vaMTvv6ShXnqR2K0YSjZSAMdMc+WEBcjtUvv+1o+Mv+sf9Ho+wXWw==",
"dependencies": {
"Microsoft.ApplicationInsights": "2.21.0",
"Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.11"
}
},
"AspNetCore.HealthChecks.SqlServer": {
"type": "Transitive",
"resolved": "9.0.0",
"contentHash": "UxCf65iCF2nU1u7AcB320abjL4CRg5swCgJECY6mKk1j5lrGMfVtskWwriGs1T29pYdRig9Vra3SPnP+4G82pA==",
"dependencies": {
"Microsoft.Data.SqlClient": "5.2.2",
"Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.11"
}
},
"AspNetCore.HealthChecks.UI.Client": {
"type": "Transitive",
"resolved": "9.0.0",
"contentHash": "1Ub3Wvvbz7CMuFNWgLEc9qqQibiMoovDML/WHrwr5J83RPgtI20giCR92s/ipLgu7IIuqw+W/y7WpIeHqAICxg==",
"dependencies": {
"AspNetCore.HealthChecks.UI.Core": "9.0.0"
}
},
"AspNetCore.HealthChecks.UI.Core": {
"type": "Transitive",
"resolved": "9.0.0",
"contentHash": "TVriy4hgYnhfqz6NAzv8qe62Q8wf82iKUL6WV9selqeFZTq1ILi39Sic6sFQegRysvAVcnxKP/vY8z9Fk8x6XQ==",
"dependencies": {
"Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.11"
}
},
"Azure.Core": {
"type": "Transitive",
"resolved": "1.60.0",
Expand Down Expand Up @@ -474,6 +535,22 @@
"Microsoft.Extensions.Options": "10.0.9"
}
},
"Microsoft.Extensions.Diagnostics.HealthChecks": {
"type": "Transitive",
"resolved": "8.0.11",
"contentHash": "zLgN22Zp9pk8RHlwssRTexw4+a6wqOnKWN+VejdPn5Yhjql4XiBhkFo35Nu8mmqHIk/UEmmCnMGLWq75aFfkOw==",
"dependencies": {
"Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "8.0.11",
"Microsoft.Extensions.Hosting.Abstractions": "8.0.1",
"Microsoft.Extensions.Logging.Abstractions": "8.0.2",
"Microsoft.Extensions.Options": "8.0.2"
}
},
"Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": {
"type": "Transitive",
"resolved": "8.0.11",
"contentHash": "So3JUdRxozRjvQ3cxU6F3nI/i4emDnjane6yMYcJhvTTTu29ltlIdoXjkFGRceIWz8yKvuEpzXItZ0x5GvN2nQ=="
},
"Microsoft.Extensions.FileProviders.Abstractions": {
"type": "Transitive",
"resolved": "10.0.9",
Expand Down Expand Up @@ -722,6 +799,11 @@
"resolved": "1.0.0",
"contentHash": "N4KeF3cpcm1PUHym1RmakkzfkEv3GRMyofVv40uXsQhCQeglr2OHNcUk2WOG51AKpGO8ynGpo9M/kFXSzghwug=="
},
"Microsoft.Win32.SystemEvents": {
"type": "Transitive",
"resolved": "6.0.0",
"contentHash": "hqTM5628jSsQiv+HGpiq3WKBl2c8v1KZfby2J6Pr7pEPlK9waPdgEO6b8A/+/xn/yZ9ulv8HuqK71ONy2tg67A=="
},
"MimeKit": {
"type": "Transitive",
"resolved": "4.17.0",
Expand Down Expand Up @@ -793,6 +875,16 @@
"NodaTime": "[3.0.0, 4.0.0)"
}
},
"Oracle.ManagedDataAccess.Core": {
"type": "Transitive",
"resolved": "3.21.120",
"contentHash": "RrSu5ZlhIqpV7mFauPfc2AkCsuWXA2cWCNXOBW+Wt7R8g6wqonWIWZN3iyhwr4mZMRrClJB/SRMtQzQMHuZPmg==",
"dependencies": {
"System.Diagnostics.PerformanceCounter": "6.0.1",
"System.DirectoryServices": "6.0.1",
"System.DirectoryServices.Protocols": "6.0.2"
}
},
"Polly.Core": {
"type": "Transitive",
"resolved": "8.7.0",
Expand Down Expand Up @@ -938,6 +1030,19 @@
"Newtonsoft.Json": "13.0.4"
}
},
"SSH.NET": {
"type": "Transitive",
"resolved": "2023.0.0",
"contentHash": "g+3VDUrYhm0sqSxmlQFgRFrmBxhQvVh4pfn4pqjkX7WXE3tTjt1tIsOtjuz3mz/5s8gFFQVRydwCJ7Ohs54sJA==",
"dependencies": {
"SshNet.Security.Cryptography": "[1.3.0]"
}
},
"SshNet.Security.Cryptography": {
"type": "Transitive",
"resolved": "1.3.0",
"contentHash": "5pBIXRjcSO/amY8WztpmNOhaaCNHY/B6CcYDI7FSTgqSyo/ZUojlLiKcsl+YGbxQuLX439qIkMfP0PHqxqJi/Q=="
},
"System.ClientModel": {
"type": "Transitive",
"resolved": "1.14.0",
Expand All @@ -963,6 +1068,35 @@
"resolved": "10.0.0",
"contentHash": "uaFRda9NjtbJRkdx311eXlAA3n2em7223c1A8d1VWyl+4FL9vkG7y2lpPfBU9HYdj/9KgdRNdn1vFK8ZYCYT/A=="
},
"System.Diagnostics.PerformanceCounter": {
"type": "Transitive",
"resolved": "6.0.1",
"contentHash": "dDl7Gx3bmSrM2k2ZIm+ucEJnLloZRyvfQF1DvfvATcGF3jtaUBiPvChma+6ZcZzxWMirN3kCywkW7PILphXyMQ==",
"dependencies": {
"System.Configuration.ConfigurationManager": "6.0.0"
}
},
"System.DirectoryServices": {
"type": "Transitive",
"resolved": "6.0.1",
"contentHash": "935IbO7h5FDGYxeO3cbx/CuvBBuk/VI8sENlfmXlh1pupNOB3LAGzdYdPY8CawGJFP7KNrHK5eUlsFoz3F6cuA==",
"dependencies": {
"System.Security.Permissions": "6.0.0"
}
},
"System.DirectoryServices.Protocols": {
"type": "Transitive",
"resolved": "6.0.2",
"contentHash": "vDDPWwHn3/DNZ+kPkdXHoada+tKPEC9bVqDOr4hK6HBSP7hGCUTA0Zw6WU5qpGaqa5M1/V+axHMIv+DNEbIf6g=="
},
"System.Drawing.Common": {
"type": "Transitive",
"resolved": "6.0.0",
"contentHash": "NfuoKUiP2nUWwKZN6twGqXioIe1zVD0RIj2t976A+czLHr2nY454RwwXs6JU9Htc6mwqL6Dn/nEL3dpVf2jOhg==",
"dependencies": {
"Microsoft.Win32.SystemEvents": "6.0.0"
}
},
"System.IO.FileSystem.AccessControl": {
"type": "Transitive",
"resolved": "4.7.0",
Expand All @@ -988,6 +1122,14 @@
"resolved": "9.0.13",
"contentHash": "t8S9IDpjJKsLpLkeBdW8cWtcPyYqrGu93Dej1RO6WwuL/lkFSqWlan3rMJfortqz1mRIh+sys2AFsSA6jWJ3Jg=="
},
"System.Security.Permissions": {
"type": "Transitive",
"resolved": "6.0.0",
"contentHash": "T/uuc7AklkDoxmcJ7LGkyX1CcSviZuLCa4jg3PekfJ7SU0niF0IVTXwUiNVP9DSpzou2PpxJ+eNY2IfDM90ZCg==",
"dependencies": {
"System.Windows.Extensions": "6.0.0"
}
},
"System.ServiceModel.Primitives": {
"type": "Transitive",
"resolved": "10.0.652802",
Expand All @@ -997,6 +1139,14 @@
"System.Security.Cryptography.Xml": "10.0.0"
}
},
"System.Windows.Extensions": {
"type": "Transitive",
"resolved": "6.0.0",
"contentHash": "IXoJOXIqc39AIe+CIR7koBtRGMiCt/LPM3lI+PELtDIy9XdyeSrwXFdWV9dzJ2Awl0paLWUaknLxFQ5HpHZUog==",
"dependencies": {
"System.Drawing.Common": "6.0.0"
}
},
"ark.mediatorframework.sample.application": {
"type": "Project",
"dependencies": {
Expand Down Expand Up @@ -1039,6 +1189,23 @@
"Microsoft.Extensions.Options": "[10.0.10, )"
}
},
"ark.tools.aspnetcore.healthchecks": {
"type": "Project",
"dependencies": {
"Ark.Tools.Core": "[1.0.0, )",
"Ark.Tools.SimpleInjector": "[1.0.0, )",
"Ark.Tools.SystemTextJson": "[1.0.0, )",
"AspNetCore.HealthChecks.AzureServiceBus": "[9.0.0, )",
"AspNetCore.HealthChecks.Network": "[9.0.0, )",
"AspNetCore.HealthChecks.Oracle": "[9.0.0, )",
"AspNetCore.HealthChecks.Publisher.ApplicationInsights": "[9.0.0, )",
"AspNetCore.HealthChecks.SqlServer": "[9.0.0, )",
"AspNetCore.HealthChecks.UI.Client": "[9.0.0, )",
"Azure.Identity": "[1.21.0, )",
"Azure.Messaging.ServiceBus": "[7.20.2, )",
"Microsoft.ApplicationInsights": "[2.23.0, )"
}
},
"ark.tools.aspnetcore.problemdetails": {
"type": "Project",
"dependencies": {
Expand Down Expand Up @@ -1073,6 +1240,7 @@
"Ark.Tools.MediatorFramework": "[1.0.0, )",
"Ark.Tools.Solid": "[1.0.0, )",
"Ark.Tools.SystemTextJson": "[1.0.0, )",
"AspNetCore.HealthChecks.UI.Client": "[9.0.0, )",
"Microsoft.Azure.Functions.Worker": "[2.52.0, )",
"Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore": "[2.1.1, )",
"SimpleInjector": "[5.6.0, )"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
<PackageReference Include="Ark.Tools.Rebus" />
<PackageReference Include="Ark.Tools.AspNetCore.MessagePack" />
<PackageReference Include="Ark.Tools.AspNetCore.ApplicationInsights" />
<PackageReference Include="Ark.Tools.AspNetCore.HealthChecks" />
<PackageReference Include="Ark.Tools.AspNetCore.MinimalApi" />
<PackageReference Include="Azure.Extensions.AspNetCore.Configuration.Secrets" />
<PackageReference Include="Azure.Identity" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ public void Configure(IApplicationBuilder app)
// Source-generated endpoints for the selected [HttpEndpoint] contracts.
endpoints.MapArkEndpointsFromAssembly<global::Ark.MediatorFramework.Sample.Application.RefreshGreetingCommand>(
versionPrefix: "/api/v{version}");
endpoints.MapArkMinimalApiHost();
endpoints.MapArkGrpcServicesFromAssembly<global::Ark.MediatorFramework.Sample.Application.RefreshGreetingCommand>();
endpoints.MapGrpcService<DocumentsGrpcService>();
endpoints.MapCodeFirstGrpcReflectionService().AllowAnonymous();
Expand Down
Loading
Loading