Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
f65b56f
Initial commit
dotnet-bot Sep 28, 2023
727e5ea
False positive. **BYPASS_SECRET_SCANNING**
joperezr Sep 28, 2023
ec97849
Service Discovery: fail when no resolvers have been registered (#340)
ReubenBond Oct 17, 2023
2bb9a6e
Service Discovery: Refactor DNS & DNS SRV providers into subclasses (…
ReubenBond Oct 23, 2023
ea510d7
Add IHostNameFeature to propagate original host name to HttpClient (#…
ReubenBond Oct 24, 2023
81b2daa
Fix race in ServiceEndPointResolver (#511)
ReubenBond Oct 26, 2023
aad81ea
Fix one place where service discovery isn't AOT compatible (#540)
davidfowl Oct 27, 2023
d2b0781
Service Discovery: make host name propagation opt-in (#548)
ReubenBond Oct 27, 2023
a7b6f7b
Last round of triple slash, I believe. (#661)
IEvangelist Nov 2, 2023
92a239c
Last round of triple slash, I believe. (#661) (#663)
davidfowl Nov 2, 2023
2febced
Merged PR 35034: Merge branch 'release/8.0-preview1' into 'internal/r…
joperezr Nov 2, 2023
7fbb032
Add additional debug logs to Service Discovery (#672)
ReubenBond Nov 2, 2023
2371e8b
Add additional debug logs to Service Discovery (#672) (#678)
ReubenBond Nov 3, 2023
63ba7e9
Merge branch 'release/8.0-preview1' into 'internal/release/8.0-preview1'
joperezr Nov 3, 2023
01862e7
Merged PR 35041: Merge branch 'release/8.0-preview1' into 'internal/r…
joperezr Nov 3, 2023
655a8a2
Add package descriptions and icons. (#701)
mitchdenny Nov 6, 2023
db14b27
[release/8.0-preview1] Add package descriptions and icons. (#701) (#702)
mitchdenny Nov 7, 2023
3c56542
Merge branch 'release/8.0-preview1' into 'internal/release/8.0-preview1'
joperezr Nov 7, 2023
84b747b
Merged PR 35083: Merge branch 'release/8.0-preview1' into 'internal/r…
joperezr Nov 7, 2023
fd54a80
Forward port package changes from release branch. (#722)
mitchdenny Nov 7, 2023
381a5ed
Fix Trim warning in ServiceDiscovery (#768)
eerhardt Nov 14, 2023
873440f
READMEs for Service Discovery (#792)
ReubenBond Nov 14, 2023
eab38c8
Merge branch 'internal/release/8.0-preview1' into joperezr/MergeChang…
joperezr Nov 14, 2023
aaf3fbf
Fix NuGet Package Icons (#817)
eerhardt Nov 14, 2023
ced627d
Merge pull request #818 from dotnet/joperezr/MergeChangesFromInternal
joperezr Nov 14, 2023
a0c7573
Merge branch 'release/8.0-preview1'
joperezr Nov 16, 2023
cea4479
Merge pull request #828 from dotnet-maestro-bot/merge/release/8.0-pre…
joperezr Nov 16, 2023
1525b00
Service Discovery: fix shutdown blocking indefinitely in some cases (…
ReubenBond Nov 16, 2023
b51c429
Use ValueStopWatch (#1148)
Kahbazi Nov 30, 2023
7050e5a
Make behavior of IHttpClientBuilder.UseServiceDiscovery overloads con…
ReubenBond Dec 1, 2023
50f8ab2
Rename WithServiceBinding to WithEndpoint (#1484)
davidfowl Dec 22, 2023
e9ee540
Add comment to explain DisableGrpcLoadBalancingFilter (#1163)
Meir017 Jan 10, 2024
e697620
RoundRobinServiceEndPointSelectorProvider (#1661)
alexander-kucherov Jan 15, 2024
6ad2ba6
Remove IServiceEndPointResolver.DisplayName property and use ToString…
ReubenBond Jan 23, 2024
43a49c3
Enable XML doc error (#2191)
eerhardt Feb 13, 2024
8740979
Service Discovery: set port to 0 when scheme is not present, not -1 (…
ReubenBond Feb 23, 2024
c85b3ef
Rename key Service Discovery types (#1877)
ReubenBond Feb 27, 2024
07dd40b
Fix PassThroughServiceEndPointResolverTests (#2451)
ReubenBond Feb 27, 2024
2b01e48
Service Discovery: allow multiple schemes to be specified in request …
ReubenBond Mar 9, 2024
b982636
Filling in empty doc comments. (#2968)
mitchdenny Mar 18, 2024
4e104b0
Remove ValueStopwatch (#2935)
eerhardt Mar 18, 2024
a846b38
Point to Kubernetes C# client logic from IsInKubernetesCluster() (#3049)
ReubenBond Mar 20, 2024
38756b1
Service Discovery API refactoring (#3114)
ReubenBond Mar 26, 2024
7e294b9
Service Discovery API refactoring (#3114) (#3196)
ReubenBond Mar 27, 2024
afd2c74
Merge branch 'release/8.0-preview5' into release/8.0
joperezr Mar 28, 2024
4faad58
Merge pull request #3261 from dotnet-maestro-bot/merge/release/8.0-pr…
joperezr Mar 28, 2024
76c92cb
Remove obsolete APIs. (#3329)
mitchdenny Apr 2, 2024
2837a06
Remove obsolete APIs. (#3336)
github-actions[bot] Apr 3, 2024
30697f6
Service Discovery: Implement approved API (#3413)
ReubenBond Apr 5, 2024
95ea2e8
Update README.md to reflect Service Discovery API changes (#3228)
ReubenBond Apr 8, 2024
616f098
[release/8.0] Service Discovery: Implement approved API (#3460)
github-actions[bot] Apr 9, 2024
27dd319
Enable public API analyzer. (#3547)
mitchdenny Apr 12, 2024
6b67ac7
Service Discovery add additional configuration tests, make scheme sel…
ReubenBond Apr 19, 2024
8ccf338
Service Discovery add additional configuration tests, make scheme sel…
github-actions[bot] Apr 22, 2024
696c6ce
ServiceEndpoint.ToString(): omit zero port (#4015)
ReubenBond Apr 30, 2024
131f376
ServiceEndpoint.ToString(): omit zero port (#4033)
github-actions[bot] Apr 30, 2024
7de9f20
Promptly remove invalid resolvers (#3800)
ReubenBond Apr 30, 2024
b62eb8e
Improve test coverage for YARP Service Discovery (#4036)
ReubenBond May 1, 2024
40992da
Move Cancel call outside of lock and add additional error handling (#…
ReubenBond May 1, 2024
dcd995d
Improve test coverage for YARP Service Discovery (#4051)
github-actions[bot] May 1, 2024
3f610e1
Promptly remove invalid resolvers (#4039)
github-actions[bot] May 1, 2024
5e62522
Move Cancel call outside of lock and add additional error handling (#…
github-actions[bot] May 1, 2024
1441356
YARP: add special-case for localhost when setting Host value (#4069)
ReubenBond May 3, 2024
2855a7d
YARP: add special-case for localhost when setting Host value (#4076)
github-actions[bot] May 4, 2024
dabd7e5
Merge branch release/8.0 into main
joperezr Jun 6, 2024
74cfe11
Mark shipped public api as such and add infrastructure for PublicApiA…
joperezr Jun 12, 2024
d29308c
Baseline code coverage (#4313)
RussKie Jun 18, 2024
cb6df3d
Filter additional records from DNS SRV response (#4463)
vha-schleupen Aug 5, 2024
037ae58
Adding public API test coverage (#5225)
Zombach Aug 9, 2024
204a929
Adding public API test coverage for Microsoft.Extensions.ServiceDisco…
Zombach Aug 14, 2024
a53b7ba
use static for classes with all static members (#5485)
SimonCropp Sep 9, 2024
3294486
Upgrade tooling for 9.0x (#5483)
radical Sep 11, 2024
a8c389b
Do not set host if it's not explicitely set in config (#6862)
benjaminpetit Dec 5, 2024
cb4a39b
Adding workflow to automatically compare public API surface against p…
joperezr Feb 2, 2025
763344c
Remove PublicApiAnalyzer (#7389)
eerhardt Feb 3, 2025
9a34a45
[ci] Remove code coverage reporting from the pipeline (#7857)
radical Mar 3, 2025
ec982ce
Adding test coverage - validate arguments of public methods (#7575)
Zombach Mar 4, 2025
45867ce
Migrate to xunit.v3 (#8403)
Youssef1313 Apr 2, 2025
f3feb15
template updates for 9.3 (#8975)
danmoseley Apr 29, 2025
397705a
Remove culture code from Microsoft documentation urls (#9253)
sebastienros May 12, 2025
83a203c
Fix error in json in README.md (#9415)
ikkentim May 20, 2025
8bf082f
Managed implementation of DNS resolver (#6104)
rzikm Jun 25, 2025
f314173
Localized file check-in by OneLocBuild Task: Build definition ID 1309…
dotnet-bot Jun 25, 2025
4b296e4
Fallback to previous DNS service discovery (#10140)
rzikm Jul 15, 2025
81b2458
Build ServiceDiscovery library and tests against netstandard2.0 (#10470)
twsouthwick Aug 25, 2025
d1008fb
Add net462 target to ServiceDiscovery (#11114)
twsouthwick Sep 2, 2025
0177e8d
Migrate Microsoft.Extensions.ServiceDiscovery to dotnet/extensions
eerhardt Sep 30, 2025
0df2dc1
Get ServiceDiscovery libraries and tests building clean in dotnet/ext…
eerhardt Sep 30, 2025
0034bee
Remove FxPolyfills from the Shared.csproj
eerhardt Sep 30, 2025
675c83e
PR Feedback
eerhardt Sep 30, 2025
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
12 changes: 12 additions & 0 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
<Sha>893c2ebbd49952ca49e93298148af2d95a61a0a4</Sha>
</Dependency>
<Dependency Name="Microsoft.Bcl.Memory" Version="9.0.9" CoherentParentDependency="Microsoft.AspNetCore.App.Runtime.win-x64">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
<Sha>893c2ebbd49952ca49e93298148af2d95a61a0a4</Sha>
</Dependency>
<Dependency Name="Microsoft.Bcl.TimeProvider" Version="9.0.9" CoherentParentDependency="Microsoft.AspNetCore.App.Runtime.win-x64">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
<Sha>893c2ebbd49952ca49e93298148af2d95a61a0a4</Sha>
Expand Down Expand Up @@ -80,6 +84,10 @@
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
<Sha>893c2ebbd49952ca49e93298148af2d95a61a0a4</Sha>
</Dependency>
<Dependency Name="Microsoft.Extensions.Primitives" Version="9.0.9" CoherentParentDependency="Microsoft.AspNetCore.App.Runtime.win-x64">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
<Sha>893c2ebbd49952ca49e93298148af2d95a61a0a4</Sha>
</Dependency>
<Dependency Name="Microsoft.NETCore.App.Ref" Version="9.0.9" CoherentParentDependency="Microsoft.AspNetCore.App.Runtime.win-x64">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
<Sha>893c2ebbd49952ca49e93298148af2d95a61a0a4</Sha>
Expand Down Expand Up @@ -180,6 +188,10 @@
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
<Sha>ff66c263be7ed395794bdaf616322977b8ec897c</Sha>
</Dependency>
<Dependency Name="Microsoft.Extensions.Features" Version="9.0.9">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
<Sha>ff66c263be7ed395794bdaf616322977b8ec897c</Sha>
</Dependency>
<Dependency Name="Microsoft.Extensions.Http.Polly" Version="9.0.9">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
<Sha>ff66c263be7ed395794bdaf616322977b8ec897c</Sha>
Expand Down
5 changes: 5 additions & 0 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
<PropertyGroup Label="Automated Maestro dependency updates">
<!-- Packages from dotnet/runtime -->
<MicrosoftBclAsyncInterfacesVersion>9.0.9</MicrosoftBclAsyncInterfacesVersion>
<MicrosoftBclMemoryVersion>9.0.9</MicrosoftBclMemoryVersion>
<MicrosoftBclTimeProviderVersion>9.0.9</MicrosoftBclTimeProviderVersion>
<MicrosoftExtensionsCachingAbstractionsVersion>9.0.9</MicrosoftExtensionsCachingAbstractionsVersion>
<MicrosoftExtensionsCachingMemoryVersion>9.0.9</MicrosoftExtensionsCachingMemoryVersion>
Expand All @@ -53,6 +54,7 @@
<MicrosoftExtensionsLoggingVersion>9.0.9</MicrosoftExtensionsLoggingVersion>
<MicrosoftExtensionsOptionsConfigurationExtensionsVersion>9.0.9</MicrosoftExtensionsOptionsConfigurationExtensionsVersion>
<MicrosoftExtensionsOptionsVersion>9.0.9</MicrosoftExtensionsOptionsVersion>
<MicrosoftExtensionsPrimitivesVersion>9.0.9</MicrosoftExtensionsPrimitivesVersion>
<MicrosoftNETCoreAppRefVersion>9.0.9</MicrosoftNETCoreAppRefVersion>
<MicrosoftNETCoreAppRuntimewinx64Version>9.0.9</MicrosoftNETCoreAppRuntimewinx64Version>
<SystemCollectionsImmutableVersion>9.0.9</SystemCollectionsImmutableVersion>
Expand All @@ -78,6 +80,7 @@
<MicrosoftExtensionsCachingSqlServerVersion>9.0.9</MicrosoftExtensionsCachingSqlServerVersion>
<MicrosoftExtensionsCachingStackExchangeRedisVersion>9.0.9</MicrosoftExtensionsCachingStackExchangeRedisVersion>
<MicrosoftExtensionsDiagnosticsHealthChecksVersion>9.0.9</MicrosoftExtensionsDiagnosticsHealthChecksVersion>
<MicrosoftExtensionsFeaturesVersion>9.0.9</MicrosoftExtensionsFeaturesVersion>
<MicrosoftExtensionsHttpPollyVersion>9.0.9</MicrosoftExtensionsHttpPollyVersion>
<MicrosoftExtensionsObjectPoolVersion>9.0.9</MicrosoftExtensionsObjectPoolVersion>
<!-- Dependencies from https://github.com/dotnet/efcore -->
Expand Down Expand Up @@ -107,6 +110,7 @@
<MicrosoftExtensionsLoggingLTSVersion>8.0.1</MicrosoftExtensionsLoggingLTSVersion>
<MicrosoftExtensionsOptionsConfigurationExtensionsLTSVersion>8.0.0</MicrosoftExtensionsOptionsConfigurationExtensionsLTSVersion>
<MicrosoftExtensionsOptionsLTSVersion>8.0.2</MicrosoftExtensionsOptionsLTSVersion>
<MicrosoftExtensionsPrimitivesLTSVersion>8.0.0</MicrosoftExtensionsPrimitivesLTSVersion>
<MicrosoftNETCoreAppRefLTSVersion>8.0.20</MicrosoftNETCoreAppRefLTSVersion>
<MicrosoftNETCoreAppRuntimewinx64LTSVersion>8.0.20</MicrosoftNETCoreAppRuntimewinx64LTSVersion>
<SystemCollectionsImmutableLTSVersion>8.0.0</SystemCollectionsImmutableLTSVersion>
Expand All @@ -132,6 +136,7 @@
<MicrosoftExtensionsCachingSqlServerLTSVersion>8.0.20</MicrosoftExtensionsCachingSqlServerLTSVersion>
<MicrosoftExtensionsCachingStackExchangeRedisLTSVersion>8.0.20</MicrosoftExtensionsCachingStackExchangeRedisLTSVersion>
<MicrosoftExtensionsDiagnosticsHealthChecksLTSVersion>8.0.20</MicrosoftExtensionsDiagnosticsHealthChecksLTSVersion>
<MicrosoftExtensionsFeaturesLTSVersion>8.0.20</MicrosoftExtensionsFeaturesLTSVersion>
<MicrosoftExtensionsHttpPollyLTSVersion>8.0.20</MicrosoftExtensionsHttpPollyLTSVersion>
<MicrosoftExtensionsObjectPoolLTSVersion>8.0.20</MicrosoftExtensionsObjectPoolLTSVersion>
<!-- Dependencies from https://github.com/dotnet/efcore -->
Expand Down
3 changes: 3 additions & 0 deletions eng/packages/General-LTS.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
of the framework, we should use the following LTS versions instead -->
<ItemGroup Condition="'$(TargetFramework)' != 'net9.0' And '$(ForceLatestDotnetVersions)' != 'true'">
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="$(MicrosoftBclAsyncInterfacesLTSVersion)" />
<PackageVersion Include="Microsoft.Bcl.Memory" Version="$(MicrosoftBclMemoryVersion)" /> <!-- Note there is no 8.0 version of Microsoft.Bcl.Memory -->
<PackageVersion Include="Microsoft.Bcl.TimeProvider" Version="$(MicrosoftBclTimeProviderLTSVersion)" />
<PackageVersion Include="Microsoft.Extensions.Caching.Abstractions" Version="$(MicrosoftExtensionsCachingAbstractionsLTSVersion)" />
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="$(MicrosoftExtensionsCachingMemoryLTSVersion)" />
Expand All @@ -17,6 +18,7 @@
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="$(MicrosoftExtensionsDependencyInjectionLTSVersion)" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics" Version="$(MicrosoftExtensionsDiagnosticsLTSVersion)" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="$(MicrosoftExtensionsDiagnosticsHealthChecksLTSVersion)" />
<PackageVersion Include="Microsoft.Extensions.Features" Version="$(MicrosoftExtensionsFeaturesLTSVersion)" />
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="$(MicrosoftExtensionsHostingAbstractionsLTSVersion)" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftExtensionsHostingLTSVersion)" />
<PackageVersion Include="Microsoft.Extensions.Http.Polly" Version="$(MicrosoftExtensionsHttpPollyLTSVersion)" />
Expand All @@ -28,6 +30,7 @@
<PackageVersion Include="Microsoft.Extensions.ObjectPool" Version="$(MicrosoftExtensionsObjectPoolLTSVersion)" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="$(MicrosoftExtensionsOptionsConfigurationExtensionsLTSVersion)" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsOptionsLTSVersion)" />
<PackageVersion Include="Microsoft.Extensions.Primitives" Version="$(MicrosoftExtensionsPrimitivesLTSVersion)" />
<PackageVersion Include="System.Collections.Immutable" Version="$(SystemCollectionsImmutableLTSVersion)" />
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="$(SystemDiagnosticsDiagnosticSourceLTSVersion)" />
<PackageVersion Include="System.Diagnostics.PerformanceCounter" Version="$(SystemDiagnosticsPerformanceCounterLTSVersion)" />
Expand Down
3 changes: 3 additions & 0 deletions eng/packages/General-net9.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
of the framework, the following versions should be used. -->
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0' Or '$(ForceLatestDotnetVersions)' == 'true'">
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="$(MicrosoftBclAsyncInterfacesVersion)" />
<PackageVersion Include="Microsoft.Bcl.Memory" Version="$(MicrosoftBclMemoryVersion)" />
<PackageVersion Include="Microsoft.Bcl.TimeProvider" Version="$(MicrosoftBclTimeProviderVersion)" />
<PackageVersion Include="Microsoft.Extensions.Caching.Abstractions" Version="$(MicrosoftExtensionsCachingAbstractionsVersion)" />
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="$(MicrosoftExtensionsCachingMemoryVersion)" />
Expand All @@ -17,6 +18,7 @@
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="$(MicrosoftExtensionsDependencyInjectionVersion)" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics" Version="$(MicrosoftExtensionsDiagnosticsVersion)" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="$(MicrosoftExtensionsDiagnosticsHealthChecksVersion)" />
<PackageVersion Include="Microsoft.Extensions.Features" Version="$(MicrosoftExtensionsFeaturesVersion)" />
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="$(MicrosoftExtensionsHostingAbstractionsVersion)" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftExtensionsHostingVersion)" />
<PackageVersion Include="Microsoft.Extensions.Http.Polly" Version="$(MicrosoftExtensionsHttpPollyVersion)" />
Expand All @@ -28,6 +30,7 @@
<PackageVersion Include="Microsoft.Extensions.ObjectPool" Version="$(MicrosoftExtensionsObjectPoolVersion)" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="$(MicrosoftExtensionsOptionsConfigurationExtensionsVersion)" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsOptionsVersion)" />
<PackageVersion Include="Microsoft.Extensions.Primitives" Version="$(MicrosoftExtensionsPrimitivesVersion)" />
<PackageVersion Include="System.Collections.Immutable" Version="$(SystemCollectionsImmutableVersion)" />
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="$(SystemDiagnosticsDiagnosticSourceVersion)" />
<PackageVersion Include="System.Diagnostics.PerformanceCounter" Version="$(SystemDiagnosticsPerformanceCounterVersion)" />
Expand Down
3 changes: 3 additions & 0 deletions eng/packages/General.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
<PackageVersion Include="Azure.Identity" Version="1.13.2" />
<PackageVersion Include="Azure.Storage.Files.DataLake" Version="12.21.0" />
<PackageVersion Include="Azure.AI.Inference" Version="1.0.0-beta.5" />
<PackageVersion Include="DnsClient" Version="1.8.0" />
<PackageVersion Include="ICSharpCode.Decompiler" Version="9.1.0.7988" />
<PackageVersion Include="Microsoft.Bcl.HashCode" Version="1.1.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="$(MicrosoftCodeAnalysisAnalyzersVersion)" />
Expand All @@ -21,6 +22,7 @@
<PackageVersion Include="Polly.Core" Version="8.4.2" />
<PackageVersion Include="Polly.Extensions" Version="8.4.2" />
<PackageVersion Include="Polly.RateLimiting" Version="8.4.2" />
<PackageVersion Include="SharpFuzz" Version="2.1.1" />
<PackageVersion Include="System.Buffers" Version="4.5.1" />
<PackageVersion Include="System.ClientModel" Version="1.2.1" />
<PackageVersion Include="System.CommandLine.NamingConventionBinder" Version="2.0.0-beta4.22272.1" />
Expand All @@ -33,6 +35,7 @@
<PackageVersion Include="System.Threading.Tasks.Extensions" Version="4.5.4" />
<PackageVersion Include="System.ValueTuple" Version="4.5.0" />
<PackageVersion Include="YamlDotNet" Version="12.3.1" />
<PackageVersion Include="Yarp.ReverseProxy" Version="2.3.0" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

namespace Microsoft.Extensions.ServiceDiscovery;

/// <summary>
/// Exposes the host name of the end point.
/// </summary>
public interface IHostNameFeature
{
/// <summary>
/// Gets the host name of the end point.
/// </summary>
public string HostName { get; }
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using Microsoft.AspNetCore.Http.Features;
using Microsoft.Extensions.Primitives;

namespace Microsoft.Extensions.ServiceDiscovery;

/// <summary>
/// Builder to create a <see cref="ServiceEndpointSource"/> instances.
/// </summary>
public interface IServiceEndpointBuilder
{
/// <summary>
/// Gets the endpoints.
/// </summary>
IList<ServiceEndpoint> Endpoints { get; }

/// <summary>
/// Gets the feature collection.
/// </summary>
IFeatureCollection Features { get; }

/// <summary>
/// Adds a change token to the resulting <see cref="ServiceEndpointSource"/>.
/// </summary>
/// <param name="changeToken">The change token.</param>
void AddChangeToken(IChangeToken changeToken);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

namespace Microsoft.Extensions.ServiceDiscovery;

/// <summary>
/// Provides details about a service's endpoints.
/// </summary>
public interface IServiceEndpointProvider : IAsyncDisposable
{
/// <summary>
/// Resolves the endpoints for the service.
/// </summary>
/// <param name="endpoints">The endpoint collection, which resolved endpoints will be added to.</param>
/// <param name="cancellationToken">The token to monitor for cancellation requests.</param>
/// <returns>The resolution status.</returns>
ValueTask PopulateAsync(IServiceEndpointBuilder endpoints, CancellationToken cancellationToken);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using System.Diagnostics.CodeAnalysis;

namespace Microsoft.Extensions.ServiceDiscovery;

/// <summary>
/// Creates <see cref="IServiceEndpointProvider"/> instances.
/// </summary>
public interface IServiceEndpointProviderFactory
{
/// <summary>
/// Tries to create an <see cref="IServiceEndpointProvider"/> instance for the specified <paramref name="query"/>.
/// </summary>
/// <param name="query">The service to create the provider for.</param>
/// <param name="provider">The provider.</param>
/// <returns><see langword="true"/> if the provider was created, <see langword="false"/> otherwise.</returns>
bool TryCreateProvider(ServiceEndpointQuery query, [NotNullWhen(true)] out IServiceEndpointProvider? provider);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using System.Net;
using Microsoft.AspNetCore.Http.Features;

namespace Microsoft.Extensions.ServiceDiscovery.Internal;

internal sealed class ServiceEndpointImpl(EndPoint endPoint, IFeatureCollection? features = null) : ServiceEndpoint
{
public override EndPoint EndPoint { get; } = endPoint;

public override IFeatureCollection Features { get; } = features ?? new FeatureCollection();

public override string? ToString() => EndPoint switch
{
IPEndPoint ip when ip.Port == 0 && ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6 => $"[{ip.Address}]",
IPEndPoint ip when ip.Port == 0 => $"{ip.Address}",
DnsEndPoint dns when dns.Port == 0 => $"{dns.Host}",
DnsEndPoint dns => $"{dns.Host}:{dns.Port}",
_ => EndPoint.ToString()!
};
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>$(TargetFrameworks);netstandard2.0</TargetFrameworks>
<IsPackable>true</IsPackable>
<Description>Provides abstractions for service discovery. Interfaces defined in this package are implemented in Microsoft.Extensions.ServiceDiscovery and other service discovery packages.</Description>
<PackageIconFullPath>$(DefaultDotnetIconFullPath)</PackageIconFullPath>
<RootNamespace>Microsoft.Extensions.ServiceDiscovery</RootNamespace>
<!-- https://github.com/dotnet/extensions/issues/6871 tracks enabling these -->
<NoWarn>$(NoWarn);S1144;CA1002;S2365;SA1642;IDE0040;CA1307;EA0009;LA0003</NoWarn>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" />
<PackageReference Include="Microsoft.Extensions.Options" />
<PackageReference Include="Microsoft.Extensions.Primitives" />
<PackageReference Include="Microsoft.Extensions.Features" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net462' OR '$(TargetFramework)' == 'netstandard2.0' ">
<PackageReference Include="Microsoft.Bcl.Memory" />
</ItemGroup>

<Import Condition=" '$(TargetFramework)' == 'net462' OR '$(TargetFramework)' == 'netstandard2.0' " Project="..\..\Shared\FxPolyfills\FxPolyfills.targets" />

</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Microsoft.Extensions.ServiceDiscovery.Abstractions

The `Microsoft.Extensions.ServiceDiscovery.Abstractions` library provides abstractions used by the `Microsoft.Extensions.ServiceDiscovery` library and other libraries which implement service discovery extensions, such as service endpoint providers. For more information, see [Service discovery in .NET](https://learn.microsoft.com/dotnet/core/extensions/service-discovery).

## Feedback & contributing

https://github.com/dotnet/aspire
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using System.Net;
using Microsoft.AspNetCore.Http.Features;
using Microsoft.Extensions.ServiceDiscovery.Internal;

namespace Microsoft.Extensions.ServiceDiscovery;

/// <summary>
/// Represents an endpoint for a service.
/// </summary>
public abstract class ServiceEndpoint
{
/// <summary>
/// Gets the endpoint.
/// </summary>
public abstract EndPoint EndPoint { get; }

/// <summary>
/// Gets the collection of endpoint features.
/// </summary>
public abstract IFeatureCollection Features { get; }

/// <summary>
/// Creates a new <see cref="ServiceEndpoint"/>.
/// </summary>
/// <param name="endPoint">The endpoint being represented.</param>
/// <param name="features">Features of the endpoint.</param>
/// <returns>A newly initialized <see cref="ServiceEndpoint"/>.</returns>
public static ServiceEndpoint Create(EndPoint endPoint, IFeatureCollection? features = null)
{
ArgumentNullException.ThrowIfNull(endPoint);

return new ServiceEndpointImpl(endPoint, features);
}
}
Loading
Loading