Class SqlServerE2eConnectionResolver
- Namespace
- ItTiger.TigerQuery.Core
- Assembly
- ItTiger.TigerQuery.Core.dll
public static class SqlServerE2eConnectionResolver
- Inheritance
-
SqlServerE2eConnectionResolver
- Inherited Members
Remarks
This is the authorization boundary for E2E infrastructure, and it is deliberately dull.
It reads one store, looks up one name, checks the reserved metadata in
SqlServerE2eMetadata, and returns. It does not search for SQL Server
instances; it does not try ., (local), localhost, LocalDB, named
instances, ports, services, or containers; it does not open a
SqlConnection, test credentials, check
reachability, or inspect permissions on a server. A profile is eligible because it says
so, never because it answers.
Selection is always by name — ConnectionName, then DefaultConnectionName — and the selected profile must carry explicit bootstrap authorization metadata. With no name, a store holding exactly one authorized bootstrap profile still resolves nothing: implicit single-profile selection can be added later without breaking a caller, while removing it later would be a silent safety regression. Ambiguity is reported, never settled by taking the first candidate.
Every failure is a value, not an exception, so a test suite can branch on NotConfigured and skip. The one thing that does throw is a null store, which is a caller bug rather than a configuration state.
Methods
Resolve(SqlServerConnectionStore, SqlServerE2eConnectionResolutionOptions?)
public static SqlServerE2eConnectionResolution Resolve(SqlServerConnectionStore store, SqlServerE2eConnectionResolutionOptions? options = null)
Parameters
storeSqlServerConnectionStore- The connection store to read. Nothing else is consulted.
optionsSqlServerE2eConnectionResolutionOptions- The name to select by and the permissions to require; treated as an empty options object when null, which resolves nothing because no name is available.
Returns
- SqlServerE2eConnectionResolution
- A resolution carrying the authorized profile, or a status and diagnostics explaining the refusal. It never carries a profile unless Status is Resolved.
Remarks
A store file that does not exist reads as an empty store and produces NotConfigured, which is what makes a fresh clone inert. A store file that exists but cannot be read or parsed produces Invalid rather than being mistaken for an empty one.
The only I/O is loading the store. No connection is opened, no server is contacted, and nothing is written — resolving is safe to call on every test run, including runs that will skip.
Exceptions
- ArgumentNullException
storeis null.