Skip to content

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Aug 27, 2025

  • Create Aspire.Microsoft.Azure.StackExchangeRedis component with core functionality
  • Complete component implementation with tests
  • Remove PackageIconFullPath from csproj file
  • Remove EnablePackageValidation from csproj file
  • Make AzureStackExchangeRedisSettings inherit from StackExchangeRedisSettings instead of duplicating properties (changed to composition due to sealed class)
  • Update extensions to use same config section as base Redis component
  • Follow Azure Npgsql pattern for configuration and authentication setup
  • Update all test files to use correct configuration section name
  • Remove unnecessary ConfigurationSchema.json file since using base component's schema
  • Build and test the changes

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

@Copilot Copilot AI changed the title [WIP] Add Aspire.Microsoft.Azure.StackExchangeRedis component library for Azure Redis integration Add Aspire.Microsoft.Azure.StackExchangeRedis component for Azure Cache for Redis with Azure AD authentication Aug 27, 2025
Copilot finished work on behalf of eerhardt August 27, 2025 15:11
@Copilot Copilot AI requested a review from eerhardt August 27, 2025 15:11
@davidfowl
Copy link
Member

@copilot address the review feedback

Copy link
Contributor Author

Copilot AI commented Sep 3, 2025

@copilot address the review feedback

Addressed all the review feedback in commit efb458c:

  • Removed PackageIconFullPath and EnablePackageValidation from csproj
  • Updated AzureStackExchangeRedisSettings to use composition with only the Credential property
  • Changed to use the same config section as base Redis component
  • Followed Azure Npgsql pattern for delegating to base component methods
  • Updated all tests and removed duplicate configuration schema

Copy link
Contributor

github-actions bot commented Sep 4, 2025

🚀 Dogfood this PR with:

curl -fsSL https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 11141

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 11141"

Comment on lines +10 to +12
builder.AddRedisClientBuilder("redis")
.WithAzureAuthentication()
.WithDistributedCache();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sebastienros @davidfowl @DamianEdwards @mitchdenny - I think this is a better composability API in general.

  • The core AddRedisClientBuilder API adds the core IConnectionMultiplexer to DI (you can pick keyed or unkeyed).
  • The extension methods build on that core multiplexer - adding Azure auth (or other auth in the future), Distributed caching, Output caching, etc.

I think this API shape makes much more sense than what we have today. It allows for picking which things are keyed and which aren't. For example, I can have a keyed core Redis connection, but an unkeyed DistributedCache. And vice versa.

Let me know what you think of this API shape. I think this is the route I want to go to make Redis Azure + Distributed/Output caching composable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants