Migrates to Aspire Azure Storage Emulator instead of MinIO for local dev#2105
Migrates to Aspire Azure Storage Emulator instead of MinIO for local dev#2105
Conversation
Replaces MinIO with Azure Storage for blob and queue storage. This change aligns with the move to Azure services and simplifies the infrastructure setup. It also updates the configuration to use Azure Storage connection strings.
| .WithReference(cache) | ||
| .WithReference(elastic) | ||
| .WithReference(storage, "MinIO") | ||
| .WithReference(storageBlobs, "AzureStorage") |
There was a problem hiding this comment.
Don't love that this matches the provider name for our configuration connection strings but it defines what it is.
| { | ||
| var redisConnectionString = config.GetConnectionString("Redis"); | ||
| string? azureStorageConnectionString = config.GetConnectionString("AzureQueues"); | ||
| if (!String.IsNullOrEmpty(azureStorageConnectionString)) |
There was a problem hiding this comment.
was forced to simplify somethings here if you have an AzureQueues connection string we just use the connection string. Noramlized Redis that way too. We need towards making our configuration easier to understand, this was required at least for queueus because if it falls through and looks up the provider connection string it will get replaced with the storage connection string (and not the queue one).
|
|
||
| public static class DictionaryExtensions | ||
| { | ||
| public static void AddRange<TKey, TValue>(this IDictionary<TKey, TValue>? dictionary, IDictionary<TKey, TValue>? range) |
There was a problem hiding this comment.
We were using the Foundatio.Repositories AddRange (we need to internalize that..) And that was throwing duplicate key because it was calling add on KVP. This is last in wins.
There was a problem hiding this comment.
Pull request overview
Migrates local development storage dependencies from MinIO to the .NET Aspire Azure Storage emulator by updating Aspire orchestration and aligning storage/queue configuration to use Azure Storage connection strings.
Changes:
- Replaced MinIO container orchestration with Aspire Azure Storage emulator (blobs + queues) wiring in the AppHost.
- Removed MinIO provider/package support from the insulation layer.
- Updated
StorageOptions/QueueOptionsconfiguration reading to supportAzureStorage/AzureQueuesconnection strings and simplified connection string parsing/merging.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/Exceptionless.Insulation/Exceptionless.Insulation.csproj | Removes Foundatio.Minio dependency from insulation layer. |
| src/Exceptionless.Insulation/Bootstrapper.cs | Removes MinIO storage provider registration branch. |
| src/Exceptionless.Core/Extensions/DictionaryExtensions.cs | Adds AddRange helper for merging dictionaries. |
| src/Exceptionless.Core/Configuration/StorageOptions.cs | Adds Azure Storage connection string fallback and refactors parsing. |
| src/Exceptionless.Core/Configuration/QueueOptions.cs | Adds Azure Queue connection string fallback and refactors parsing/metrics init. |
| src/Exceptionless.AppHost/Program.cs | Replaces MinIO resource with Azure Storage emulator; wires blobs/queues to projects. |
| src/Exceptionless.AppHost/Extensions/MinIoExtensions.cs | Deletes MinIO Aspire resource/extensions implementation. |
| src/Exceptionless.AppHost/Exceptionless.AppHost.csproj | Adds Aspire.Hosting.Azure.Storage and removes Foundatio.Minio. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Updates eslint and prettier ignore files to exclude the .agents directory. This prevents linting and formatting of generated agent files, which are third-party and should not be modified. This change supports the aspire-azure-storage feature branch.
Replaces MinIO with Azure Storage for blob and queue storage.
This change aligns with the move to Azure services and simplifies the infrastructure setup. It also updates the configuration to use Azure Storage connection strings.