phenix-passenger-configuration-service-contract
Single-interface WCF service-contract NuGet package (TC.Phenix.Passenger.Configuration.ServiceContract) defining two company-level passenger-configuration queries for the passenger configuration service.
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 | WCF |
| Runtimes | .NET Framework 4.6.2 |
| Tests / CI | none / CI in place |
| Last commit | 2018-11-28 |
| Owner | Owner unknown (mapping to be curated) |
| Domain | Selling and quoting (system generated; curate in repo-owners.json to override) |
| Product area | Phenix |
| Hosted | No signal No hosting signal in its pipelines (typical for libraries and contract packages) |
| Releases | 2 release pipeline(s): phenix-passenger-configuration-service-contract develop; phenix-passenger-configuration-service-contract release |
| Integration | wcf |
| Source | Open in Azure DevOps |
Dependencies in context
Entanglement
kernel Bound into the core by 2 mechanism(s).
- Pinning dependency: phenix-passenger-configuration-service-contract
- Speaks WCF (host)
Detaches when it is itself a binding point: unpinning it releases its consumers; and when its WCF surface gains a modern interface or its WCF calls move to one.
This repo is itself a binding point: see what cutting it unlocks.
Depends on / used by
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. Ships as a package; ZDD applies to the services that consume it.
SQL Server exit
Not applicableNo SQL Server dependency is recorded for this repo. Nothing to migrate.
Containerisation
Not applicableLibraries ship as packages, not as running services. There is nothing to containerise.
Recommended actions
Re-publish phenix-passenger-configuration-service-contract with modern targets
Frozen at .NET Framework 4.5.2; consumers cannot leave the old platform while pinned to it.
Impact: Highest leverage in the programme: releases consumers without touching them
proposedAssessment notes
phenix-passenger-configuration-service-contract
Purpose
The contract half of the passenger configuration WCF service. It contains exactly one file: IPassengerConfigurationServiceContract, a [ServiceContract] interface with two operations — IsFullPaymentRequired(companyId) and IsPhenixBookingEmergencyContactRequired(companyId). Published as a NuGet package (GeneratePackageOnBuild, version 1.0.0 via version.props) so consumers and the host (phenix-passenger-configuration-service-host) can share the interface.
Tech stack
C# class library targeting .NET Framework 4.6.2 with a System.ServiceModel reference — pure WCF contract, no other dependencies. SDK-style csproj with Directory.Build.props/NuGet.config pointing at the internal feed.
Deployment
Included with 2 releases. Classic build pipelines phenix-passenger-configuration-service-contract develop and release with matching release pipelines of the same names — no YAML in the repo, so the pipeline publishes the NuGet package via designer builds.
Dependencies
None, internal or external — the only reference is the framework System.ServiceModel assembly.
Data stores
None; it is a contract-only package.
Integration points
Defines a WCF contract consumed over WCF by the host service and its clients; the library itself makes no calls.
Code health
No tests (nothing meaningful to test in a two-method interface), no README. Dormant since 2018-11-28 — the contract has been frozen for over seven years while still flowing through active release pipelines.
Modernisation risks
The package pins every consumer of passenger configuration to WCF and .NET Framework 4.6.2. It cannot be consumed from modern .NET without CoreWCF or a rewrite; the natural move is to fold these two boolean lookups into a REST endpoint (e.g. on a modern passenger or company-configuration API) and retire both this contract and its host. Medium priority: trivial code, but it is a load-bearing WCF edge.