ProfileConnectionSource
- Namespace:
PPDS.Auth.Pooling - Assembly:
PPDS.Auth - Kind: Class
- Implements:
IDisposable
Summary
Connection source that creates ServiceClients from an authentication profile. Implements IConnectionSource pattern for use with connection pools.
Members
Constructors
ProfileConnectionSource(AuthProfile profile, string environmentUrl, int maxPoolSize, Action<DeviceCodeInfo> deviceCodeCallback, Func<Action<DeviceCodeInfo>, PreAuthDialogResult> beforeInteractiveAuth, string environmentDisplayName, ISecureCredentialStore credentialStore, string clientSecretOverride, Action<AuthProfile> onProfileUpdated)
ProfileConnectionSource(AuthProfile profile, string environmentUrl, int maxPoolSize, Action<DeviceCodeInfo> deviceCodeCallback, Func<Action<DeviceCodeInfo>, PreAuthDialogResult> beforeInteractiveAuth, string environmentDisplayName, ISecureCredentialStore credentialStore, string clientSecretOverride, Action<AuthProfile> onProfileUpdated)
Creates a new ProfileConnectionSource.
-
Param
profile: The authentication profile. -
Param
environmentUrl: The Dataverse environment URL. -
Param
maxPoolSize: Maximum pool size (default: 52 per Microsoft recommendations). -
Param
deviceCodeCallback: Optional callback for device code display. -
Param
beforeInteractiveAuth: Optional callback invoked before browser opens for interactive auth. Returns the user's choice (OpenBrowser, UseDeviceCode, or Cancel). -
Param
environmentDisplayName: Optional environment display name for connection naming. -
Param
credentialStore: Optional secure credential store for looking up secrets. -
Param
clientSecretOverride: Optional client secret override (bypasses env var and store lookups). -
Param
onProfileUpdated: Optional callback invoked when profile metadata is updated (e.g., HomeAccountId after auth).
Methods
Dispose
void Dispose()
(inherited from System.IDisposable.Dispose)
FromProfile
ProfileConnectionSource FromProfile(AuthProfile profile, int maxPoolSize, Action<DeviceCodeInfo> deviceCodeCallback, Func<Action<DeviceCodeInfo>, PreAuthDialogResult> beforeInteractiveAuth, ISecureCredentialStore credentialStore, Action<AuthProfile> onProfileUpdated)
Creates a ProfileConnectionSource from a profile, using the profile's environment.
-
Param
profile: The authentication profile (must have environment set). -
Param
maxPoolSize: Maximum pool size. -
Param
deviceCodeCallback: Optional callback for device code display. -
Param
beforeInteractiveAuth: Optional callback invoked before browser opens for interactive auth. Returns the user's choice (OpenBrowser, UseDeviceCode, or Cancel). -
Param
credentialStore: Optional secure credential store for looking up secrets. -
Param
onProfileUpdated: Optional callback invoked when profile metadata is updated (e.g., HomeAccountId after auth). -
Returns: A new connection source.
GetSeedClient
ServiceClient GetSeedClient()
Gets the seed ServiceClient for cloning.
- Returns: An authenticated, ready-to-use ServiceClient.
InvalidateSeed
void InvalidateSeed()
Invalidates the cached seed client, forcing fresh authentication on next use.
Properties
EnvironmentUrl
string EnvironmentUrl { get; }
Gets the environment URL.
MaxPoolSize
int MaxPoolSize { get; }
Gets the maximum number of pooled connections for this source.
Name
string Name { get; }
Gets the unique name for this connection source. Includes identity and environment display name when available.
Profile
AuthProfile Profile { get; }
Gets the authentication profile.