From 68cdea4f8b8f6a9ed071bc4557c4fdf336316a2c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 5 Feb 2026 14:08:47 +0000 Subject: [PATCH 1/3] Initial plan From e29435516371f8fdb2219b5d06527b52be3ed930 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 5 Feb 2026 14:11:14 +0000 Subject: [PATCH 2/3] Update Talking Clock example to use OnInitializeResource event Co-authored-by: IEvangelist <7679720+IEvangelist@users.noreply.github.com> --- .../docs/architecture/resource-examples.mdx | 205 ++++++++++-------- 1 file changed, 111 insertions(+), 94 deletions(-) diff --git a/src/frontend/src/content/docs/architecture/resource-examples.mdx b/src/frontend/src/content/docs/architecture/resource-examples.mdx index 01180ef33..87e9e9c69 100644 --- a/src/frontend/src/content/docs/architecture/resource-examples.mdx +++ b/src/frontend/src/content/docs/architecture/resource-examples.mdx @@ -212,93 +212,25 @@ public class RedisResource(string name) This example demonstrates creating a completely custom resource (`TalkingClockResource`) that doesn't derive from built-in types. It shows: -- Defining a simple resource class. -- Implementing a custom lifecycle hook (`TalkingClockLifecycleHook`) to manage the resource's behavior (starting, logging, state updates). -- Using `ResourceLoggerService` for per-resource logging. +- Defining a simple resource class with child resources. +- Using the `OnInitializeResource` event to establish resource lifecycle behavior. +- Using per-resource logging and state management. - Using `ResourceNotificationService` to publish state updates. -- Creating an `AddTalkingClock` extension method to register the resource and its lifecycle hook. +- Creating an `AddTalkingClock` extension method to register the resource and configure its behavior. ```csharp title="C# — TalkingClockResource.cs" // Define the custom resource type. It inherits from the base Aspire 'Resource' class. -// This class is primarily a data container; Aspire behavior is added via lifecycle hooks and extension methods. -public sealed class TalkingClockResource(string name) : Resource(name); -``` - -```csharp title="C# — TalkingClockLifecycleHook.cs" -// Define an Aspire lifecycle hook that implements the behavior for the TalkingClockResource. -// Lifecycle hooks allow plugging into the application's startup and shutdown sequences. -public sealed class TalkingClockLifecycleHook( - // Aspire service for publishing resource state updates (e.g., Running, Starting). - ResourceNotificationService notification, - // Aspire service for publishing and subscribing to application-wide events. - IDistributedApplicationEventing eventing, - // Aspire service for getting a logger scoped to a specific resource. - ResourceLoggerService loggerSvc, - // General service provider for dependency injection if needed. - IServiceProvider services) : IDistributedApplicationLifecycleHook // Implement the Aspire hook interface. +// This class is primarily a data container; Aspire behavior is added via eventing and extension methods. +public sealed class TalkingClockResource(string name, ClockHandResource tickHand, ClockHandResource tockHand) : Resource(name) { - // This method is called by Aspire after all resources have been initially added to the application model. - public Task AfterResourcesCreatedAsync( - DistributedApplicationModel model, // The Aspire application model containing all resources. - CancellationToken token) // Cancellation token for graceful shutdown. - { - // Find all instances of TalkingClockResource in the Aspire application model. - foreach (var clock in model.Resources.OfType()) - { - // Get an Aspire logger specifically for this clock instance. Logs will be associated with this resource in the dashboard. - var log = loggerSvc.GetLogger(clock); - - // Start a background task to manage the clock's lifecycle and behavior. - _ = Task.Run(async () => - { - // Publish an Aspire event indicating that this resource is about to start. - // Other components could subscribe to this event for pre-start actions. - await eventing.PublishAsync( - new BeforeResourceStartedEvent(clock, services), token); - - // Log an informational message associated with the resource. - log.LogInformation("Starting Talking Clock..."); - - // Publish an initial state update to the Aspire notification service. - // This sets the resource's state to 'Running' and records the start time. - // The Aspire dashboard and other orchestrators observe these state updates. - await notification.PublishUpdateAsync(clock, s => s with - { - StartTimeStamp = DateTime.UtcNow, - State = KnownResourceStates.Running // Use an Aspire well-known state. - }); - - // Enter the main loop that runs as long as cancellation is not requested. - while (!token.IsCancellationRequested) - { - // Log the current time, associated with the resource. - log.LogInformation("The time is {time}", DateTime.UtcNow); - - // Publish a custom state update "Tick" using Aspire's ResourceStateSnapshot. - // This demonstrates using custom state strings and styles in the Aspire dashboard. - await notification.PublishUpdateAsync(clock, - s => s with { State = new ResourceStateSnapshot("Tick", KnownResourceStateStyles.Info) }); - - await Task.Delay(1000, token); - - // Publish another custom state update "Tock" using Aspire's ResourceStateSnapshot. - await notification.PublishUpdateAsync(clock, - s => s with { State = new ResourceStateSnapshot("Tock", KnownResourceStateStyles.Success) }); - - await Task.Delay(1000, token); - } - }, token); - } - - // Indicate that this hook's work (starting the background tasks) is complete for now. - return Task.CompletedTask; - } - // Other Aspire lifecycle hook methods (e.g., BeforeStartAsync, AfterEndpointsAllocatedAsync) could be implemented here if needed. + public ClockHandResource TickHand { get; } = tickHand; // The tick hand resource instance. + public ClockHandResource TockHand { get; } = tockHand; // The tock hand resource instance. } + +public sealed class ClockHandResource(string name) : Resource(name); ``` ```csharp title="C# — TalkingClockExtensions.cs" - // Define Aspire extension methods for adding the TalkingClockResource to the application builder. // This provides a fluent API for users to add the custom resource. public static class TalkingClockExtensions @@ -306,39 +238,124 @@ public static class TalkingClockExtensions // The main Aspire extension method to add a TalkingClockResource. public static IResourceBuilder AddTalkingClock( this IDistributedApplicationBuilder builder, // Extends the Aspire application builder. - string name) // The name for this resource instance. + string name) // The name for this resource instance. { - // Register the TalkingClockLifecycleHook with the DI container using Aspire's helper method. - // The Aspire hosting infrastructure will automatically discover and run registered lifecycle hooks. - builder.Services.TryAddLifecycleHook(); - - // Create a new instance of the TalkingClockResource. - var clockResource = new TalkingClockResource(name); + // Create a new instance of the TalkingClockResource with child resources for tick and tock hands. + var tickHandResource = new ClockHandResource(name + "-tick-hand"); + var tockHandResource = new ClockHandResource(name + "-tock-hand"); + var clockResource = new TalkingClockResource(name, tickHandResource, tockHandResource); // Add the resource instance to the Aspire application builder and configure it using fluent APIs. - return builder.AddResource(clockResource) + var clockBuilder = builder.AddResource(clockResource) // Use Aspire's ExcludeFromManifest to prevent this resource from being included in deployment manifests. .ExcludeFromManifest() + // Set a URL for the resource, which will be displayed in the Aspire dashboard. + .WithUrl("https://www.speaking-clock.com/", "Speaking Clock") // Use Aspire's WithInitialState to set an initial state snapshot for the resource. // This provides initial metadata visible in the Aspire dashboard. .WithInitialState(new CustomResourceSnapshot // Aspire type for custom resource state. { - ResourceType = "TalkingClock", // A string identifying the type of resource for Aspire. + ResourceType = "TalkingClock", // A string identifying the type of resource for Aspire, this shows in the dashboard. CreationTimeStamp = DateTime.UtcNow, - State = KnownResourceStates.NotStarted, // Use an Aspire well-known state. + State = KnownResourceStates.NotStarted, // Use an Aspire well-known state. // Add custom properties displayed in the Aspire dashboard's resource details. Properties = [ // Use Aspire's known property key for source information. new(CustomResourceKnownProperties.Source, "Talking Clock") - ], - // Add URLs associated with the resource, displayed as links in the Aspire dashboard. - Urls = - [ - // Define a URL using Aspire's UrlSnapshot type. - new("Speaking Clock", "https://www.speaking-clock.com/", isInternal: false) ] }); + + // Use the OnInitializeResource event to establish the lifecycle behavior for this custom resource. + // This event fires after a resource is added but before endpoints are allocated. + // It's the preferred way to add custom logic to resources that don't have a built-in lifecycle. + clockBuilder.OnInitializeResource(static async (resource, @event, token) => + { + // This event is published when the resource is initialized. + // You add custom logic here to establish the lifecycle for your custom resource. + + var log = @event.Logger; // Get the logger for this resource instance. + var eventing = @event.Eventing; // Get the eventing service for publishing events. + var notification = @event.Notifications; // Get the notification service for state updates. + var services = @event.Services; // Get the service provider for dependency injection. + + // Publish an Aspire event indicating that this resource is about to start. + // Other components could subscribe to this event for pre-start actions. + await eventing.PublishAsync(new BeforeResourceStartedEvent(resource, services), token); + await eventing.PublishAsync(new BeforeResourceStartedEvent(resource.TickHand, services), token); + await eventing.PublishAsync(new BeforeResourceStartedEvent(resource.TockHand, services), token); + + // Log an informational message associated with the resource. + log.LogInformation("Starting Talking Clock..."); + + // Publish an initial state update to the Aspire notification service. + // This sets the resource's state to 'Running' and records the start time. + // The Aspire dashboard and other orchestrators observe these state updates. + await notification.PublishUpdateAsync(resource, s => s with + { + StartTimeStamp = DateTime.UtcNow, + State = KnownResourceStates.Running // Use an Aspire well-known state. + }); + await notification.PublishUpdateAsync(resource.TickHand, s => s with + { + StartTimeStamp = DateTime.UtcNow, + State = "Waiting on clock tick" // Custom state string for the tick hand. + }); + await notification.PublishUpdateAsync(resource.TockHand, s => s with + { + StartTimeStamp = DateTime.UtcNow, + State = "Waiting on clock tock" // Custom state string for the tock hand. + }); + + // Enter the main loop that runs as long as cancellation is not requested. + while (!token.IsCancellationRequested) + { + // Log the current time, associated with the resource. + log.LogInformation("The time is {time}", DateTime.UtcNow); + + // Publish a custom state update "Tick" using Aspire's ResourceStateSnapshot. + // This demonstrates using custom state strings and styles in the Aspire dashboard. + await notification.PublishUpdateAsync(resource, + s => s with { State = new ResourceStateSnapshot("Tick", KnownResourceStateStyles.Success) }); + await notification.PublishUpdateAsync(resource.TickHand, + s => s with { State = new ResourceStateSnapshot("On", KnownResourceStateStyles.Success) }); + await notification.PublishUpdateAsync(resource.TockHand, + s => s with { State = new ResourceStateSnapshot("Off", KnownResourceStateStyles.Info) }); + + await Task.Delay(1000, token); + + // Publish another custom state update "Tock" using Aspire's ResourceStateSnapshot. + await notification.PublishUpdateAsync(resource, + s => s with { State = new ResourceStateSnapshot("Tock", KnownResourceStateStyles.Success) }); + await notification.PublishUpdateAsync(resource.TickHand, + s => s with { State = new ResourceStateSnapshot("Off", KnownResourceStateStyles.Info) }); + await notification.PublishUpdateAsync(resource.TockHand, + s => s with { State = new ResourceStateSnapshot("On", KnownResourceStateStyles.Success) }); + + await Task.Delay(1000, token); + } + }); + + AddHandResource(tickHandResource); + AddHandResource(tockHandResource); + + return clockBuilder; + + void AddHandResource(ClockHandResource clockHand) + { + builder.AddResource(clockHand) + .WithParentRelationship(clockBuilder) // Establish a parent-child relationship with the TalkingClockResource. + .WithInitialState(new() + { + ResourceType = "ClockHand", + CreationTimeStamp = DateTime.UtcNow, + State = KnownResourceStates.NotStarted, + Properties = + [ + new(CustomResourceKnownProperties.Source, "Talking Clock") + ] + }); + } } } ``` From 28b0ddfc7e65ccf4a59f3dd2cfac03cc56de4c14 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 5 Feb 2026 14:18:30 +0000 Subject: [PATCH 3/3] Address code review feedback: improve comments and grammar Co-authored-by: IEvangelist <7679720+IEvangelist@users.noreply.github.com> --- .../docs/architecture/resource-examples.mdx | 8 +- .../src/data/aspire-integrations.json | 402 +++++++++--------- 2 files changed, 207 insertions(+), 203 deletions(-) diff --git a/src/frontend/src/content/docs/architecture/resource-examples.mdx b/src/frontend/src/content/docs/architecture/resource-examples.mdx index 87e9e9c69..fc71d870f 100644 --- a/src/frontend/src/content/docs/architecture/resource-examples.mdx +++ b/src/frontend/src/content/docs/architecture/resource-examples.mdx @@ -227,6 +227,8 @@ public sealed class TalkingClockResource(string name, ClockHandResource tickHand public ClockHandResource TockHand { get; } = tockHand; // The tock hand resource instance. } +// Define a child resource type representing a clock hand (tick or tock). +// This demonstrates how to create hierarchical resource relationships in Aspire. public sealed class ClockHandResource(string name) : Resource(name); ``` @@ -272,7 +274,7 @@ public static class TalkingClockExtensions clockBuilder.OnInitializeResource(static async (resource, @event, token) => { // This event is published when the resource is initialized. - // You add custom logic here to establish the lifecycle for your custom resource. + // You can add custom logic here to establish the lifecycle for your custom resource. var log = @event.Logger; // Get the logger for this resource instance. var eventing = @event.Eventing; // Get the eventing service for publishing events. @@ -344,7 +346,9 @@ public static class TalkingClockExtensions void AddHandResource(ClockHandResource clockHand) { builder.AddResource(clockHand) - .WithParentRelationship(clockBuilder) // Establish a parent-child relationship with the TalkingClockResource. + // Establish a parent-child relationship with the TalkingClockResource. + // This creates a hierarchical structure in the dashboard and coordinates lifecycle management. + .WithParentRelationship(clockBuilder) .WithInitialState(new() { ResourceType = "ClockHand", diff --git a/src/frontend/src/data/aspire-integrations.json b/src/frontend/src/data/aspire-integrations.json index 7aae620f6..9b3bb32eb 100644 --- a/src/frontend/src/data/aspire-integrations.json +++ b/src/frontend/src/data/aspire-integrations.json @@ -15,7 +15,7 @@ "inference", "ai-search" ], - "downloads": 16814, + "downloads": 17772, "version": "13.1.0-preview.1.25616.3" }, { @@ -33,7 +33,7 @@ "ai", "openai" ], - "downloads": 435338, + "downloads": 441635, "version": "13.1.0-preview.1.25616.3" }, { @@ -52,7 +52,7 @@ "table", "storage" ], - "downloads": 1292741, + "downloads": 1628809, "version": "13.1.0" }, { @@ -72,7 +72,7 @@ "messaging", "eventing" ], - "downloads": 283712, + "downloads": 290493, "version": "13.1.0" }, { @@ -92,7 +92,7 @@ "messaging", "eventing" ], - "downloads": 695775, + "downloads": 714242, "version": "13.1.0" }, { @@ -112,7 +112,7 @@ "pubsub", "messaging" ], - "downloads": 30914, + "downloads": 31289, "version": "13.1.0" }, { @@ -134,7 +134,7 @@ "database", "data" ], - "downloads": 42474, + "downloads": 44713, "version": "13.1.0" }, { @@ -161,7 +161,7 @@ "npgsql", "sql" ], - "downloads": 90367, + "downloads": 94263, "version": "13.1.0" }, { @@ -180,7 +180,7 @@ "ai", "ai-search" ], - "downloads": 204922, + "downloads": 210128, "version": "13.1.0" }, { @@ -199,7 +199,7 @@ "secrets", "security" ], - "downloads": 660821, + "downloads": 676901, "version": "13.1.0" }, { @@ -218,7 +218,7 @@ "blobs", "blob" ], - "downloads": 2422913, + "downloads": 2603174, "version": "13.1.0" }, { @@ -238,7 +238,7 @@ "queues", "messaging" ], - "downloads": 648198, + "downloads": 764040, "version": "13.1.0" }, { @@ -256,7 +256,7 @@ "messaging", "eventing" ], - "downloads": 1597547, + "downloads": 1675274, "version": "13.1.0" }, { @@ -272,13 +272,13 @@ "cloud", "elasticsearch" ], - "downloads": 39698, + "downloads": 40286, "version": "13.1.0" }, { "title": "Aspire.Hosting.AWS", "description": "Add support for provisioning AWS application resources and configuring the AWS SDK for .NET.", - "icon": "https://api.nuget.org/v3-flatcontainer/aspire.hosting.aws/9.3.1/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/aspire.hosting.aws/9.3.2/icon", "href": "https://www.nuget.org/packages/Aspire.Hosting.AWS", "tags": [ "aspire", @@ -286,8 +286,8 @@ "hosting", "aws" ], - "downloads": 218946, - "version": "9.3.1" + "downloads": 225906, + "version": "9.3.2" }, { "title": "Aspire.Hosting.Azure.AIFoundry", @@ -306,7 +306,7 @@ "ai-search", "cloud" ], - "downloads": 24169, + "downloads": 25438, "version": "13.1.0-preview.1.25616.3" }, { @@ -322,7 +322,7 @@ "configuration", "cloud" ], - "downloads": 168873, + "downloads": 173684, "version": "13.1.0" }, { @@ -339,7 +339,7 @@ "cloud", "appcontainers" ], - "downloads": 344267, + "downloads": 356075, "version": "13.1.0" }, { @@ -357,7 +357,7 @@ "cloud", "applicationinsights" ], - "downloads": 400343, + "downloads": 409035, "version": "13.1.0" }, { @@ -373,7 +373,7 @@ "cloud", "appservice" ], - "downloads": 15721, + "downloads": 16431, "version": "13.1.0-preview.1.25616.3" }, { @@ -393,7 +393,7 @@ "services", "cloud" ], - "downloads": 423476, + "downloads": 429393, "version": "13.1.0" }, { @@ -410,7 +410,7 @@ "registry", "cloud" ], - "downloads": 59841, + "downloads": 68511, "version": "13.1.0" }, { @@ -429,7 +429,7 @@ "data", "nosql" ], - "downloads": 497510, + "downloads": 510917, "version": "13.1.0" }, { @@ -447,7 +447,7 @@ "eventing", "cloud" ], - "downloads": 148947, + "downloads": 153658, "version": "13.1.0" }, { @@ -464,7 +464,7 @@ "serverless", "cloud" ], - "downloads": 535442, + "downloads": 550779, "version": "13.1.0" }, { @@ -482,7 +482,7 @@ "secrets", "cloud" ], - "downloads": 936003, + "downloads": 966298, "version": "13.1.0" }, { @@ -500,7 +500,7 @@ "data", "cloud" ], - "downloads": 2547, + "downloads": 2583, "version": "13.1.0-preview.1.25616.3" }, { @@ -517,7 +517,7 @@ "observability", "cloud" ], - "downloads": 529820, + "downloads": 544767, "version": "13.1.0" }, { @@ -535,7 +535,7 @@ "data", "cloud" ], - "downloads": 239737, + "downloads": 246065, "version": "13.1.0" }, { @@ -553,7 +553,7 @@ "caching", "cloud" ], - "downloads": 235524, + "downloads": 240983, "version": "13.1.0" }, { @@ -571,7 +571,7 @@ "ai-search", "cloud" ], - "downloads": 131300, + "downloads": 133854, "version": "13.1.0" }, { @@ -589,7 +589,7 @@ "eventing", "cloud" ], - "downloads": 625263, + "downloads": 648800, "version": "13.1.0" }, { @@ -606,7 +606,7 @@ "realtime", "cloud" ], - "downloads": 86929, + "downloads": 88942, "version": "13.1.0" }, { @@ -624,7 +624,7 @@ "data", "cloud" ], - "downloads": 331943, + "downloads": 341291, "version": "13.1.0" }, { @@ -643,7 +643,7 @@ "table", "cloud" ], - "downloads": 1959778, + "downloads": 2012683, "version": "13.1.0" }, { @@ -662,7 +662,7 @@ "messaging", "cloud" ], - "downloads": 20909, + "downloads": 21154, "version": "13.1.0" }, { @@ -675,7 +675,7 @@ "hosting", "devtunnels" ], - "downloads": 49307, + "downloads": 53584, "version": "13.1.0" }, { @@ -689,7 +689,7 @@ "docker", "docker-compose" ], - "downloads": 177621, + "downloads": 184408, "version": "13.1.0-preview.1.25616.3" }, { @@ -703,7 +703,7 @@ "hosting", "elasticsearch" ], - "downloads": 103235, + "downloads": 107368, "version": "13.1.0" }, { @@ -719,7 +719,7 @@ "cache", "caching" ], - "downloads": 44357, + "downloads": 45286, "version": "13.1.0" }, { @@ -735,7 +735,7 @@ "models", "ai" ], - "downloads": 7029, + "downloads": 7267, "version": "13.1.0" }, { @@ -753,7 +753,7 @@ "framework", "runtime" ], - "downloads": 163678, + "downloads": 187568, "version": "13.1.0" }, { @@ -769,7 +769,7 @@ "messaging", "eventing" ], - "downloads": 405316, + "downloads": 418249, "version": "13.1.0" }, { @@ -786,7 +786,7 @@ "identity", "security" ], - "downloads": 274255, + "downloads": 281475, "version": "13.1.0-preview.1.25616.3" }, { @@ -799,7 +799,7 @@ "hosting", "kubernetes" ], - "downloads": 35131, + "downloads": 36844, "version": "13.1.0-preview.1.25616.3" }, { @@ -812,7 +812,7 @@ "maui", "hosting" ], - "downloads": 5585, + "downloads": 5932, "version": "13.1.0-preview.1.25616.3" }, { @@ -831,7 +831,7 @@ "data", "ai-search" ], - "downloads": 8474, + "downloads": 8515, "version": "13.1.0" }, { @@ -847,7 +847,7 @@ "database", "data" ], - "downloads": 334861, + "downloads": 342660, "version": "13.1.0" }, { @@ -863,7 +863,7 @@ "database", "data" ], - "downloads": 160311, + "downloads": 163020, "version": "13.1.0" }, { @@ -879,7 +879,7 @@ "messaging", "eventing" ], - "downloads": 54990, + "downloads": 56197, "version": "13.1.0" }, { @@ -894,7 +894,7 @@ "openai", "ai" ], - "downloads": 16531, + "downloads": 17337, "version": "13.1.0" }, { @@ -911,7 +911,7 @@ "database", "data" ], - "downloads": 31467, + "downloads": 32156, "version": "13.1.0" }, { @@ -927,7 +927,7 @@ "messaging", "eventing" ], - "downloads": 177524, + "downloads": 180819, "version": "13.1.0" }, { @@ -946,7 +946,7 @@ "database", "data" ], - "downloads": 2227715, + "downloads": 2293847, "version": "13.1.0" }, { @@ -962,7 +962,7 @@ "framework", "runtime" ], - "downloads": 122271, + "downloads": 125304, "version": "13.1.0" }, { @@ -980,7 +980,7 @@ "ai-search", "data" ], - "downloads": 91458, + "downloads": 93341, "version": "13.1.0" }, { @@ -996,7 +996,7 @@ "messaging", "eventing" ], - "downloads": 1134840, + "downloads": 1159824, "version": "13.1.0" }, { @@ -1012,7 +1012,7 @@ "cache", "caching" ], - "downloads": 2462492, + "downloads": 2527630, "version": "13.1.0" }, { @@ -1028,7 +1028,7 @@ "observability", "logging" ], - "downloads": 204085, + "downloads": 209992, "version": "13.1.0" }, { @@ -1045,7 +1045,7 @@ "database", "data" ], - "downloads": 2732320, + "downloads": 2806203, "version": "13.1.0" }, { @@ -1057,7 +1057,7 @@ "aspire", "testing" ], - "downloads": 2771720, + "downloads": 2844712, "version": "13.1.0" }, { @@ -1073,7 +1073,7 @@ "cache", "caching" ], - "downloads": 147050, + "downloads": 150404, "version": "13.1.0" }, { @@ -1089,7 +1089,7 @@ "reverse-proxy", "api" ], - "downloads": 79370, + "downloads": 84180, "version": "13.1.0" }, { @@ -1108,7 +1108,7 @@ "identity", "security" ], - "downloads": 209966, + "downloads": 215830, "version": "13.1.0-preview.1.25616.3" }, { @@ -1117,7 +1117,7 @@ "icon": "https://api.nuget.org/v3-flatcontainer/aspire.microsoft.aspnetcore.systemwebadapters/2.2.1-preview.1.25618.2/icon", "href": "https://www.nuget.org/packages/Aspire.Microsoft.AspNetCore.SystemWebAdapters", "tags": [], - "downloads": 1339, + "downloads": 1367, "version": "2.2.1-preview.1.25618.2" }, { @@ -1139,7 +1139,7 @@ "db", "nosql" ], - "downloads": 622325, + "downloads": 636466, "version": "13.1.0" }, { @@ -1158,7 +1158,7 @@ "cache", "caching" ], - "downloads": 14103, + "downloads": 15393, "version": "13.1.0-preview.1.25616.3" }, { @@ -1177,7 +1177,7 @@ "sqlserver", "sql" ], - "downloads": 930708, + "downloads": 959429, "version": "13.1.0" }, { @@ -1204,7 +1204,7 @@ "cosmosdb", "nosql" ], - "downloads": 104332, + "downloads": 106101, "version": "13.1.0" }, { @@ -1229,7 +1229,7 @@ "sqlserver", "sql" ], - "downloads": 2880524, + "downloads": 2955775, "version": "13.1.0" }, { @@ -1247,7 +1247,7 @@ "configuration", "appconfiguration" ], - "downloads": 83848, + "downloads": 90105, "version": "13.1.0" }, { @@ -1267,7 +1267,7 @@ "search", "ai-search" ], - "downloads": 6456, + "downloads": 6499, "version": "13.1.0-preview.1.25616.3" }, { @@ -1285,7 +1285,7 @@ "database", "mongodb" ], - "downloads": 193991, + "downloads": 197689, "version": "13.1.0" }, { @@ -1303,7 +1303,7 @@ "database", "mongodb" ], - "downloads": 1445, + "downloads": 1458, "version": "13.1.0" }, { @@ -1323,7 +1323,7 @@ "mysql", "sql" ], - "downloads": 2197129, + "downloads": 2222418, "version": "13.1.0" }, { @@ -1341,7 +1341,7 @@ "messaging", "eventing" ], - "downloads": 58174, + "downloads": 59703, "version": "13.1.0" }, { @@ -1362,7 +1362,7 @@ "npgsql", "sql" ], - "downloads": 1638533, + "downloads": 1713708, "version": "13.1.0" }, { @@ -1389,7 +1389,7 @@ "npgsql", "sql" ], - "downloads": 3170335, + "downloads": 3254362, "version": "13.1.0" }, { @@ -1406,7 +1406,7 @@ "ai", "openai" ], - "downloads": 338530, + "downloads": 344895, "version": "13.1.0-preview.1.25616.3" }, { @@ -1431,7 +1431,7 @@ "oracle", "sql" ], - "downloads": 165017, + "downloads": 169399, "version": "13.1.0" }, { @@ -1457,7 +1457,7 @@ "mysql", "sql" ], - "downloads": 271928, + "downloads": 278325, "version": "13.1.0" }, { @@ -1476,7 +1476,7 @@ "database", "ai-search" ], - "downloads": 67734, + "downloads": 69331, "version": "13.1.0" }, { @@ -1497,7 +1497,7 @@ "messaging", "eventing" ], - "downloads": 560346, + "downloads": 568850, "version": "13.1.0" }, { @@ -1518,7 +1518,7 @@ "messaging", "eventing" ], - "downloads": 1566, + "downloads": 1577, "version": "13.1.0" }, { @@ -1536,7 +1536,7 @@ "observability", "logging" ], - "downloads": 293473, + "downloads": 297643, "version": "13.1.0" }, { @@ -1554,7 +1554,7 @@ "caching", "redis" ], - "downloads": 3375050, + "downloads": 3503810, "version": "13.1.0" }, { @@ -1574,7 +1574,7 @@ "distributedcache", "redis" ], - "downloads": 1396011, + "downloads": 1426043, "version": "13.1.0" }, { @@ -1595,13 +1595,13 @@ "outputcache", "redis" ], - "downloads": 512927, + "downloads": 520133, "version": "13.1.0" }, { "title": "CommunityToolkit.Aspire.GoFeatureFlag", "description": "A GO Feature Flag client that integrates with Aspire, including health checks, logging, and telemetry.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.gofeatureflag/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.gofeatureflag/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.GoFeatureFlag", "tags": [ "aspire", @@ -1611,13 +1611,13 @@ "gofeatureflag", "client" ], - "downloads": 38113, + "downloads": 38621, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.ActiveMQ", "description": "An Aspire hosting package for hosting ActiveMQ.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.activemq/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.activemq/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.ActiveMQ", "tags": [ "aspire", @@ -1627,13 +1627,13 @@ "hosting", "activemq" ], - "downloads": 49497, + "downloads": 50350, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Adminer", "description": "An Aspire integration for adminer hosting.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.adminer/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.adminer/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Adminer", "tags": [ "aspire", @@ -1643,13 +1643,13 @@ "hosting", "adminer" ], - "downloads": 67191, + "downloads": 69435, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Azure.Dapr", "description": "Azure Dapr support for Aspire.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.azure.dapr/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.azure.dapr/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Azure.Dapr", "tags": [ "aspire", @@ -1660,13 +1660,13 @@ "dapr", "azure" ], - "downloads": 43482, + "downloads": 44489, "version": "13.0.0" }, { "title": "CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis", "description": "Package Description", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.azure.dapr.redis/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.azure.dapr.redis/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Azure.Dapr.Redis", "tags": [ "aspire", @@ -1674,13 +1674,13 @@ "communitytoolkit", "dotnetcommunitytoolkit" ], - "downloads": 36037, + "downloads": 36648, "version": "13.0.0" }, { "title": "CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder", "description": "An Aspire component leveraging the Data API Builder container.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.azure.dataapibuilder/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.azure.dataapibuilder/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder", "tags": [ "aspire", @@ -1691,7 +1691,7 @@ "dataapibuilder", "hosting" ], - "downloads": 52600, + "downloads": 53323, "version": "13.1.1" }, { @@ -1708,13 +1708,13 @@ "staticwebapps", "hosting" ], - "downloads": 38579, + "downloads": 39056, "version": "9.4.0" }, { "title": "CommunityToolkit.Aspire.Hosting.Bun", "description": "An Aspire integration for hosting Bun apps.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.bun/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.bun/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Bun", "tags": [ "aspire", @@ -1725,13 +1725,13 @@ "bun", "javascript" ], - "downloads": 56111, + "downloads": 57005, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Dapr", "description": "Dapr support for Aspire.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.dapr/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.dapr/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Dapr", "tags": [ "aspire", @@ -1741,7 +1741,7 @@ "hosting", "dapr" ], - "downloads": 277225, + "downloads": 284948, "version": "13.0.0" }, { @@ -1755,13 +1755,13 @@ "communitytoolkit", "dotnetcommunitytoolkit" ], - "downloads": 3144, + "downloads": 3187, "version": "9.1.1-beta.197" }, { "title": "CommunityToolkit.Aspire.Hosting.DbGate", "description": "An Aspire integration for dbgate hosting.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.dbgate/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.dbgate/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.DbGate", "tags": [ "aspire", @@ -1771,13 +1771,13 @@ "hosting", "dbgate" ], - "downloads": 98811, + "downloads": 101526, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Deno", "description": "An Aspire integration for hosting Deno apps.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.deno/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.deno/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Deno", "tags": [ "aspire", @@ -1787,13 +1787,13 @@ "hosting", "deno" ], - "downloads": 50573, + "downloads": 51247, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions", "description": "An Aspire integration for extending Elasticsearch hosting.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.elasticsearch.extensions/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.elasticsearch.extensions/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Elasticsearch.Extensions", "tags": [ "aspire", @@ -1804,13 +1804,13 @@ "elasticsearch", "elasticvue" ], - "downloads": 752, + "downloads": 892, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Flagd", "description": "flagd is a feature flag evaluation engine. Think of it as a ready-made, open source, OpenFeature-compliant feature flag backend system.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.flagd/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.flagd/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Flagd", "tags": [ "aspire", @@ -1822,13 +1822,13 @@ "feature-flags", "openfeature" ], - "downloads": 7905, + "downloads": 8271, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Flyway", "description": "An Aspire integration for Flyway database migration tool.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.flyway/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.flyway/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Flyway", "tags": [ "aspire", @@ -1839,13 +1839,13 @@ "flyway", "migration" ], - "downloads": 1585, + "downloads": 2050, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.GoFeatureFlag", "description": "GO Feature Flag support for Aspire.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.gofeatureflag/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.gofeatureflag/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.GoFeatureFlag", "tags": [ "aspire", @@ -1855,13 +1855,13 @@ "hosting", "gofeatureflag" ], - "downloads": 37192, + "downloads": 37726, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Golang", "description": "An Aspire integration for hosting Golang apps.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.golang/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.golang/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Golang", "tags": [ "aspire", @@ -1871,13 +1871,13 @@ "hosting", "golang" ], - "downloads": 65435, + "downloads": 66573, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Java", "description": "An Aspire integration for hosting Java apps using either the Java executable or container image.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.java/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.java/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Java", "tags": [ "aspire", @@ -1887,13 +1887,13 @@ "hosting", "java" ], - "downloads": 55264, + "downloads": 56103, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.JavaScript.Extensions", "description": "An Aspire integration for hosting NodeJS apps using Vite, Yarn, PNPM, or NPM.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.javascript.extensions/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.javascript.extensions/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.JavaScript.Extensions", "tags": [ "aspire", @@ -1907,13 +1907,13 @@ "pnpm", "npm" ], - "downloads": 11336, + "downloads": 12841, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.k6", "description": "Grafana k6 support for Aspire.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.k6/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.k6/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.k6", "tags": [ "aspire", @@ -1923,13 +1923,13 @@ "hosting", "k6" ], - "downloads": 32580, + "downloads": 33170, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Keycloak.Extensions", "description": "Aspire hosting extensions for Keycloak (includes PostgreSQL integration).", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.keycloak.extensions/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.keycloak.extensions/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Keycloak.Extensions", "tags": [ "aspire", @@ -1941,13 +1941,13 @@ "hosting", "extensions" ], - "downloads": 5895, - "version": "13.1.2-beta.514" + "downloads": 6103, + "version": "13.1.2-beta.515" }, { "title": "CommunityToolkit.Aspire.Hosting.KurrentDB", "description": "KurrentDB support for Aspire.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.kurrentdb/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.kurrentdb/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.KurrentDB", "tags": [ "aspire", @@ -1957,13 +1957,13 @@ "hosting", "kurrentdb" ], - "downloads": 6301, + "downloads": 6538, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.LavinMQ", "description": "An Aspire hosting package for hosting LavinMQ.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.lavinmq/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.lavinmq/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.LavinMQ", "tags": [ "aspire", @@ -1973,13 +1973,13 @@ "hosting", "lavinmq" ], - "downloads": 35403, + "downloads": 35872, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.MailPit", "description": "An Aspire component leveraging the MailPit container.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.mailpit/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.mailpit/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.MailPit", "tags": [ "aspire", @@ -1990,13 +1990,13 @@ "smtp", "hosting" ], - "downloads": 96963, + "downloads": 101153, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.McpInspector", "description": "An Aspire to run the MCP Inspector against a MCP server.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.mcpinspector/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.mcpinspector/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.McpInspector", "tags": [ "aspire", @@ -2008,13 +2008,13 @@ "debugging", "hosting" ], - "downloads": 25569, + "downloads": 26256, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Meilisearch", "description": "Meilisearch support for Aspire.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.meilisearch/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.meilisearch/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Meilisearch", "tags": [ "aspire", @@ -2024,13 +2024,13 @@ "hosting", "meilisearch" ], - "downloads": 50997, + "downloads": 51563, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Minio", "description": "An Aspire hosting integration for MinIO", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.minio/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.minio/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Minio", "tags": [ "aspire", @@ -2042,13 +2042,13 @@ "cloud", "storage" ], - "downloads": 46895, + "downloads": 49396, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.MongoDB.Extensions", "description": "An Aspire integration for extending mongodb hosting.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.mongodb.extensions/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.mongodb.extensions/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions", "tags": [ "aspire", @@ -2059,13 +2059,13 @@ "mongodb", "dbgate" ], - "downloads": 44157, + "downloads": 44841, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.MySql.Extensions", "description": "An Aspire integration for extending mysql hosting.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.mysql.extensions/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.mysql.extensions/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.MySql.Extensions", "tags": [ "aspire", @@ -2076,13 +2076,13 @@ "mysql", "dbgate" ], - "downloads": 22626, + "downloads": 23079, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Ngrok", "description": "An Aspire integration for exposing hosted applications via secure, public URLs using ngrok.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.ngrok/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.ngrok/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Ngrok", "tags": [ "aspire", @@ -2093,13 +2093,13 @@ "ngrok", "tunnels" ], - "downloads": 59987, + "downloads": 61850, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Ollama", "description": "An Aspire integration leveraging the Ollama container with support for downloading a model on startup.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.ollama/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.ollama/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Ollama", "tags": [ "aspire", @@ -2110,13 +2110,13 @@ "ollama", "ai" ], - "downloads": 194486, + "downloads": 198225, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector", "description": "An Aspire component to add an OpenTelemetry Collector into the OTLP pipeline", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.opentelemetrycollector/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.opentelemetrycollector/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector", "tags": [ "aspire", @@ -2126,13 +2126,13 @@ "opentelemetry", "observability" ], - "downloads": 11218, + "downloads": 11753, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.PapercutSmtp", "description": "An Aspire component leveraging Papercut SMTP container.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.papercutsmtp/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.papercutsmtp/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.PapercutSmtp", "tags": [ "aspire", @@ -2143,13 +2143,13 @@ "smtp", "hosting" ], - "downloads": 40944, + "downloads": 41677, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions", "description": "An Aspire integration for extending postgres hosting.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.postgresql.extensions/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.postgresql.extensions/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions", "tags": [ "aspire", @@ -2160,13 +2160,13 @@ "postgres", "dbgate" ], - "downloads": 54036, + "downloads": 55102, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.PowerShell", "description": "Run powershell scripts in-process with your Aspire AppHost, injecting aspire resources and/or object instances as variables, using the command lines tools of your choice like azure cli, azd, or any other terminal tools.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.powershell/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.powershell/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.PowerShell", "tags": [ "aspire", @@ -2179,13 +2179,13 @@ "script", "hosting" ], - "downloads": 25550, + "downloads": 26647, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Python.Extensions", "description": "An Aspire integration for hosting Uvicorn apps.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.python.extensions/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.python.extensions/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Python.Extensions", "tags": [ "aspire", @@ -2196,13 +2196,13 @@ "uvicorn", "python" ], - "downloads": 56409, + "downloads": 57465, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.RavenDB", "description": "An Aspire integration leveraging the RavenDB container.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.ravendb/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.ravendb/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.RavenDB", "tags": [ "aspire", @@ -2212,13 +2212,13 @@ "hosting", "ravendb" ], - "downloads": 47109, + "downloads": 47839, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Redis.Extensions", "description": "An Aspire integration for extending redis hosting.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.redis.extensions/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.redis.extensions/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Redis.Extensions", "tags": [ "aspire", @@ -2229,13 +2229,13 @@ "redis", "dbgate" ], - "downloads": 46565, + "downloads": 47386, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Rust", "description": "An Aspire integration for hosting Rust apps.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.rust/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.rust/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Rust", "tags": [ "aspire", @@ -2245,13 +2245,13 @@ "hosting", "rust" ], - "downloads": 48555, + "downloads": 49252, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Sftp", "description": "Aspire hosting integration for the atmoz SFTP container image.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.sftp/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.sftp/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Sftp", "tags": [ "aspire", @@ -2262,13 +2262,13 @@ "sftp", "hosting" ], - "downloads": 603, + "downloads": 828, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Solr", "description": "An Aspire hosting integration for Apache Solr.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.solr/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.solr/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Solr", "tags": [ "aspire", @@ -2276,13 +2276,13 @@ "communitytoolkit", "dotnetcommunitytoolkit" ], - "downloads": 9397, + "downloads": 9580, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects", "description": "An Aspire hosting integration capable of deploying SQL Server Database Projects as part of your AppHost.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.sqldatabaseprojects/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.sqldatabaseprojects/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects", "tags": [ "aspire", @@ -2293,13 +2293,13 @@ "sql", "sqlproj" ], - "downloads": 123926, + "downloads": 127434, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Sqlite", "description": "An Aspire hosting integration for providing a Sqlite database connection.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.sqlite/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.sqlite/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Sqlite", "tags": [ "aspire", @@ -2310,13 +2310,13 @@ "sql", "sqlite" ], - "downloads": 54284, + "downloads": 55216, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.SqlServer.Extensions", "description": "An Aspire integration for extending sqlserver hosting.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.sqlserver.extensions/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.sqlserver.extensions/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.SqlServer.Extensions", "tags": [ "aspire", @@ -2327,13 +2327,13 @@ "sqlserver", "dbgate" ], - "downloads": 68576, + "downloads": 70353, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.Stripe", "description": "An Aspire integration for the Stripe CLI for local webhook forwarding and testing.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.stripe/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.stripe/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.Stripe", "tags": [ "aspire", @@ -2345,13 +2345,13 @@ "payments", "webhooks" ], - "downloads": 801, + "downloads": 934, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Hosting.SurrealDb", "description": "SurrealDB support for Aspire.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.surrealdb/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.hosting.surrealdb/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Hosting.SurrealDb", "tags": [ "aspire", @@ -2361,13 +2361,13 @@ "hosting", "surrealdb" ], - "downloads": 15687, + "downloads": 15969, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.KurrentDB", "description": "A KurrentDB client that integrates with Aspire, including health checks, logging, and telemetry.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.kurrentdb/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.kurrentdb/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.KurrentDB", "tags": [ "aspire", @@ -2377,13 +2377,13 @@ "kurrentdb", "client" ], - "downloads": 6266, + "downloads": 6498, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.MassTransit.RabbitMQ", "description": "An Aspire client integration for MassTransit RabbitMQ.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.masstransit.rabbitmq/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.masstransit.rabbitmq/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.MassTransit.RabbitMQ", "tags": [ "aspire", @@ -2394,13 +2394,13 @@ "masstransit", "rabbitmq" ], - "downloads": 57245, + "downloads": 58048, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Meilisearch", "description": "A Meilisearch client that integrates with Aspire, including health checks, logging, and telemetry.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.meilisearch/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.meilisearch/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Meilisearch", "tags": [ "aspire", @@ -2410,13 +2410,13 @@ "meilisearch", "client" ], - "downloads": 56946, + "downloads": 57587, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Microsoft.Data.Sqlite", "description": "An Aspire client integration for the Microsoft.Data.Sqlite.Core package.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.microsoft.data.sqlite/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.microsoft.data.sqlite/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Microsoft.Data.Sqlite", "tags": [ "aspire", @@ -2428,13 +2428,13 @@ "data", "ado.net" ], - "downloads": 41150, + "downloads": 41802, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Microsoft.EntityFrameworkCore.Sqlite", "description": "An Aspire client integration for the Microsoft.EntityFrameworkCore.Sqlite package.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.microsoft.entityframeworkcore.sqlite/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.microsoft.entityframeworkcore.sqlite/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Microsoft.EntityFrameworkCore.Sqlite", "tags": [ "aspire", @@ -2449,13 +2449,13 @@ "ef", "orm" ], - "downloads": 49959, + "downloads": 50632, "version": "9.7.2" }, { "title": "CommunityToolkit.Aspire.Minio.Client", "description": "An Aspire client integration for MinIO", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.minio.client/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.minio.client/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Minio.Client", "tags": [ "aspire", @@ -2467,13 +2467,13 @@ "cloud", "storage" ], - "downloads": 26000, + "downloads": 27317, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.OllamaSharp", "description": "An Aspire client integration for the OllamaSharp library.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.ollamasharp/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.ollamasharp/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.OllamaSharp", "tags": [ "aspire", @@ -2485,13 +2485,13 @@ "ollamasharp", "client" ], - "downloads": 225029, + "downloads": 229438, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.RavenDB.Client", "description": "An Aspire client integration for the RavenDB.Client library.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.ravendb.client/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.ravendb.client/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.RavenDB.Client", "tags": [ "aspire", @@ -2501,13 +2501,13 @@ "client", "ravendb" ], - "downloads": 52722, + "downloads": 53516, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.Sftp", "description": "An SFTP client that integrates with Aspire, including health checks, logging, and telemetry.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.sftp/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.sftp/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.Sftp", "tags": [ "aspire", @@ -2517,13 +2517,13 @@ "sftp", "client" ], - "downloads": 570, + "downloads": 711, "version": "13.1.1" }, { "title": "CommunityToolkit.Aspire.SurrealDb", "description": "A SurrealDB client that integrates with Aspire, including health checks, logging, and telemetry.", - "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.surrealdb/13.1.2-beta.514/icon", + "icon": "https://api.nuget.org/v3-flatcontainer/communitytoolkit.aspire.surrealdb/13.1.2-beta.515/icon", "href": "https://www.nuget.org/packages/CommunityToolkit.Aspire.SurrealDb", "tags": [ "aspire", @@ -2533,7 +2533,7 @@ "surrealdb", "client" ], - "downloads": 15372, + "downloads": 15637, "version": "13.1.1" } ] \ No newline at end of file