provider-activator
WinForms ClickOnce desktop tool for Head Office staff to switch third-party providers on/off in the Phenix database via stored procedures.
Health score
0 to 100 across seven weighted factors; nothing is hidden. Green is 75 and above, amber 50 to 74, red below 50. How scoring works.
Facts
| Languages | csharp |
| Frameworks | Windows Forms, ClickOnce |
| Runtimes | .NET 8 (windows) |
| Tests / CI | none / CI in place |
| Last commit | 2024-05-13 |
| Owner | Owner unknown (mapping to be curated) |
| Domain | Selling and quoting (system generated; curate in repo-owners.json to override) |
| Product area | Phenix |
| Hosted | On-prem Deployed to our own machines
|
| Releases | 1 release pipeline(s): provider-activator |
| Integration | sqlserver |
| Source | Open in Azure DevOps |
Risk flags
Each flag links to its glossary definition.
Dependencies in context
Entanglement
loosely attached Bound into the core by 1 mechanism(s).
- Shares core database sqlserver:Phenix
Detaches when the shared database group it belongs to gains an owned API or completes schema separation (sqlserver:Phenix).
Migration playbooks
Generated from this repo's assessment data: what is feasible, what blocks it, and the steps in order. Ratings: green means actionable now, amber means sequence other work first, red means blocked, grey means not applicable.
ZDD adoption
Not applicableNot a deployed service (libraries, database definitions, desktop apps) or a retirement candidate not worth the investment. Desktop application distributed to user machines; server-side ZDD does not apply.
SQL Server exit
Retire insteadThis repo is a retirement or consolidation candidate. Do not invest in a database migration; execute the retirement and the SQL Server dependency disappears with it.
Containerisation
Not appropriateThis is a desktop application distributed to user machines; containers do not apply. Its modernisation path is replacement by a web application, not containerisation.
Recommended actions
Rotate the credentials committed to provider-activator
Risk flags indicate credentials or keys in source (secrets-in-source). Rotate now and enable secret scanning in CI; this is independent of all other work.
Impact: Closes a live security exposure at near-zero cost
proposedReview provider-activator for retirement
Dormant (last commit 2024-05-13) yet still release-linked, and nothing depends on it. Confirm remaining use, then retire and disarm its pipeline.
Impact: Shrinks the estate before the expensive work begins
proposedAssessment notes
provider-activator
Purpose
A tiny operational Windows Forms tool ("Provider Activator") that lists providers from the Phenix database and toggles them on/off. It calls two stored procedures (ProviderSwitch_SELECT, ProviderSwitch_OnOff) and offers an environment picker driven by TC.ConnectionBroker connection strings, so operators can flip providers per environment.
Tech stack
Single C# project targeting net8.0-windows (WinForms, SDK-style csproj, win-x64), published via ClickOnce with Release and Release-Beta profiles to development.travelcounsellors.com / a \\ukmaniis3 file share. Uses Microsoft.Extensions.DependencyInjection, System.Data.SqlClient and TC.ConnectionBroker 1.12.x for connection-string resolution.
Deployment
Included as prod_application with 1 release; build pipeline provider-activator (YAML build.yml in repo, self-hosted pool with MSBuild/Visual Studio demands) and release pipeline provider-activator. Distribution is ClickOnce install pages rather than a server deployment; deployment-scripts is pulled in as a git submodule.
Dependencies
Internal: TC.ConnectionBroker.Sql / .Extensions.DependencyInjection (tc-connectionbroker) and the shared deployment-scripts submodule. No other estate packages and no external services.
Data stores
SQL Server — the shared Phenix database, accessed directly with stored procedures through a ConnectionBroker-resolved connection string.
Integration points
Direct SQL only; no REST, messaging or WCF. It is a thick client mutating shared Phenix state from operator desktops.
Code health
No test project at all and the README is untouched Azure DevOps boilerplate. Last commit 2024-05-13, so dormant for over two years. A ClickOnce signing certificate (ClickOnce.pfx) is committed to source alongside its thumbprint in the csproj.
Modernisation risks
The runtime is modern (.NET 8) so the stack itself is fine, but the pattern is not: a ClickOnce thick client writing directly to the shared Phenix database bypasses any API layer, and the committed PFX signing key is a secrets-hygiene issue. Low priority on stack grounds; the sensible move is folding this switch into an existing admin UI or API rather than upgrading it.