Platform Evolution
Assessment run-2026-07-27-1 · 213 of 213 repos assessed
Repos / phenix-contact-centre-api

phenix-contact-centre-api

Small ASP.NET Core 2.2 API exposing emergency-contact data for Phenix contacts, with command/query handlers, validation rules and auditing over the contact database.

50 · ambermediumloosely attachedOn-premZDD: not applicableapidormant

Health score

50

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.


Runtime currency / 25
0
.NET Framework, out of mainstream support
Legacy transport / 15
15
No legacy WCF or SOAP surface
Test posture / 15
8
Some tests, coverage is thin
Security hygiene / 15
15
No credentials found in source
Dangerous coupling / 15
8
shares a core database (sqlserver:ContactCentre)
Activity / 10
0
Dormant: no meaningful change for two years or more while still deployed
Deployment hygiene / 5
5
CI in place
Health over time
2026-07-24 (run-2026-07-24-1): 502026-07-27 (run-2026-07-27-1): 50
No change since 2026-07-24 (50 to 50).

Facts

Languagescsharp
FrameworksASP.NET Core 2.2
Runtimes.NET Framework 4.6.2
Tests / CIsome / CI in place
Last commit2024-08-22
OwnerOwner unknown (mapping to be curated)
DomainContact centre and CRM (system generated; curate in repo-owners.json to override)
Product areaPhenix
HostedOn-prem Deployed to our own machines
  • Release "\marketing\contact-centre\phenix-contact-centre-api Stealth": Production: deployment-group phase (agents on our own machines)
  • Release "\marketing\contact-centre\phenix-contact-centre-api Stealth": Training: deployment-group phase (agents on our own machines)
  • Release "\marketing\contact-centre\phenix-contact-centre-api Stealth": DR: deployment-group phase (agents on our own machines)
  • Release "\marketing\contact-centre\phenix-contact-centre-api master": QA: deployment-group phase (agents on our own machines)
  • Release "\marketing\contact-centre\phenix-contact-centre-api release": Staging: deployment-group phase (agents on our own machines)
Releases3 release pipeline(s): \marketing\contact-centre\phenix-contact-centre-api Stealth; \marketing\contact-centre\phenix-contact-centre-api master; \marketing\contact-centre\phenix-contact-centre-api release
Integrationrest
SourceOpen in Azure DevOps

Risk flags

Each flag links to its glossary definition.

Dependencies in context

Laying out the graph…
greenamberreddata store (square, dashed link)Node size follows fan-in. Click any node to open it.

Entanglement

loosely attached Bound into the core by 1 mechanism(s).

Detaches when the shared database group it belongs to gains an owned API or completes schema separation (sqlserver:ContactCentre).

Depends on / used by

Used by (0)
No internal dependents.

Data stores
sqlserver:ContactCentre

Capability duplication

Part of the Contact centre family (consolidate): Second generation, dormant since 2024

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 applicable

Not a deployed service (libraries, database definitions, desktop apps) or a retirement candidate not worth the investment. Retirement or consolidation candidate; do not invest in ZDD adoption.

SQL Server exit

Retire instead

This 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

Retire instead

This repo is a retirement or consolidation candidate; containerising it would be investment in something we intend to switch off.

Recommended actions

Consolidate phenix-contact-centre-api into the surviving contact centre path

Second generation, dormant since 2024. Converge on the generation 2 pair, give the ContactCentre database a named owner (stage 4), and retire the earlier generations as their remaining traffic moves.

Impact: Removes a duplicated capability

proposed

Assessment notes

phenix-contact-centre-api

Purpose

The original ("v1") contact-centre API, now reduced to a single EmergencyContactsController. A domain library implements command/query handlers, validation rules (required field, regex, single-preferred), access checks and audit logging for emergency-contact records.

Tech stack

C# ASP.NET Core 2.2 MVC hosted on .NET Framework 4.6.2 (netstandard2.0 domain library), with Swashbuckle 1.0 Swagger, API versioning, PhenixAuthLib authentication, Application Insights telemetry, and raw System.Data.SqlClient data access through TC.ConnectionBroker.

Deployment

Included as prod_application with 3 releases. Build pipelines: phenix-contact-centre-api, ... develop, ... release (classic — no YAML in repo). Release pipelines under \marketing\contact-centre\: Stealth, master, release. Deploys to IIS via PowerShell scripts in deployment/ (app pool + website configuration, Slack webhook notification).

Dependencies

Internal packages: TC.ConnectionBroker.* (tc-connectionbroker, old 1.11.x line) and TC.Exceptions.* (tc-exceptions). External: Azure Application Insights, Slack incoming webhook used by deployment scripts.

Data stores

SQL Server via ConnectionBroker connection ContactApi1 — the shared ContactCentre contact database (stored-procedure style repositories for emergency contacts, auth and audit).

Integration points

REST only (versioned controllers with Swagger). No message bus, no WCF.

Code health

One test project with reasonable unit coverage of the domain layer (rules, handlers, commands, auditing). README is boilerplate. Dormant: last commit 2024-08-22, and dependencies (ConnectionBroker 1.11, Swashbuckle 1.0) are far behind the rest of the estate.

Modernisation risks

ASP.NET Core 2.2 is long end-of-life and it runs on full .NET Framework 4.6.2, so both the framework and runtime are unsupported. Functionality is narrow (emergency contacts) and overlaps the contact-centre domain now served by phenix-contact-api / phenix-contact-centre-2-api — a strong candidate to fold into one of those .NET 8 services and retire.