Platform Evolution
Assessment run-2026-07-27-1 · 213 of 213 repos assessed
Repos / tc-documentation

tc-documentation

Legacy ASMX SOAP web service that generates booking documents (invoices, itineraries, ATOL certificates, vouchers, statements, receipts, letters) from the BookingDocumentation database using SSRS ReportViewer and iTextSharp.

23 · redhighkernelOn-premZDD: not applicableservicedormantsecrets in source

Health score

23

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
0
No tests
Security hygiene / 15
0
Credentials or keys committed to source
Dangerous coupling / 15
3
shares a core database (sqlserver:EventLog); depends on pinning component(s): application-framework
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): 232026-07-27 (run-2026-07-27-1): 23
No change since 2026-07-24 (23 to 23).

Facts

Languagescsharp, sql
FrameworksASMX Web Services, SQL Server Reporting Services
Runtimes.NET Framework 4.5.2
Tests / CInone / CI in place
Last commit2024-10-17
OwnerOwner unknown (mapping to be curated)
DomainBookings and fulfilment (system generated; curate in repo-owners.json to override)
Product areaPhenix
HostedOn-prem Deployed to our own machines
  • Release "\ops\documentationbooking\tc-documentation CI": QA: deployment-group phase (agents on our own machines)
  • Release "\ops\documentationbooking\tc-documentation CI": Staging: deployment-group phase (agents on our own machines)
  • Release "\ops\documentationbooking\tc-documentation CI": Production: deployment-group phase (agents on our own machines)
  • Release "\ops\documentationbooking\tc-documentation CI": Training: deployment-group phase (agents on our own machines)
  • Release "\ops\documentationbooking\tc-documentation CI": DR: deployment-group phase (agents on our own machines)
Releases2 release pipeline(s): \ops\documentationbooking\tc-documentation CI; \ops\documentationbooking\tc-documentation CI - Stealth
Integrationsoap
SourceOpen in Azure DevOps

Dependencies in context

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

Entanglement

kernel Bound into the core by 2 mechanism(s).

Detaches when its pinning dependencies are cut or multi-targeted (application-framework); and when the shared database group it belongs to gains an owned API or completes schema separation (sqlserver:EventLog).

Depends on / used by

Used by (0)
No internal dependents.

Data stores
sqlserver:BookingDocumentationsqlserver:EventLog

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

Rotate the credentials committed to tc-documentation

Risk flags indicate credentials or keys in source (plaintext-credentials). 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

proposed

Review tc-documentation for retirement

Dormant (last commit 2024-10-17) 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

proposed

Assessment notes

tc-documentation

Purpose

Hosts BookingDocumentationService.asmx, a SOAP endpoint whose GenerateDocument method accepts a dozen request types (letter, ATOL certificate, statement, itinerary, voucher, invoice, customer receipt, booking summary, business-travel statement, retro-commission) and renders documents via request handlers over stored procedures. The repo also carries TC.Phenix.Documentation.Services.Clients (a NuGet-packaged service client for consumers), a LegacyDB sqlproj with the BookingDocumentation schema/stored procedures and change scripts, and an SSRS DocumentationDatabase reporting project.

Tech stack

C# on .NET Framework 4.5.2 with legacy csproj/packages.config. ASMX web services (pre-WCF SOAP), Microsoft ReportViewer 10 (SSRS) for rendering, iTextSharp 5.1.3 (2011-era) for PDFs, raw System.Data.SqlClient data access, per-environment Web.{env}.config transforms, and internal packages TC.Phenix.ApplicationFramework, TC.Exceptions, TC.ContactCentre.ServiceClient and TC.Phenix.Services.Client.

Deployment

Included as prod_application with 2 releases: release pipelines \ops\documentationbooking\tc-documentation CI and ... CI - Stealth from build pipeline tc-documentation. YAML azure-pipeline.yaml uses the shared templates repo with a Visual Studio build of the Booking project. Hosted on IIS.

Dependencies

Internal packages: TC.ContactCentre.ServiceClient (phenix-contact-centre-wcf), TC.Exceptions (tc-exceptions), TC.Phenix.ApplicationFramework (application-framework); TC.Phenix.Services.Client maps to no confirmed repo. Mail-group appSettings (documentation, senior admin, exception-report addresses) indicate outbound email for exception reporting. No third-party services.

Data stores

SQL Server BookingDocumentation (documents, batches, per-document-type stored procedures) and the shared EventLog database — both accessed with plaintext SQL usernames and passwords committed in Web.config, including the production config transform targeting the PhenixData server.

Integration points

SOAP only (ASMX, BasicProfile 1.1), consumed via the packaged DocumentationServiceClient by other estate apps (documentation/booking tooling; backoffice-documentation-booking is the newer WCF sibling in the same domain).

Code health

No tests anywhere, no README. Last commit 2024-10-17, so effectively dormant while remaining in the production document path. Production connection strings with hardcoded credentials are committed in source across the config transforms.

Modernisation risks

High: an end-of-life runtime (.NET Framework 4.5.2) hosting pre-WCF ASMX SOAP, ancient rendering dependencies (ReportViewer 10, iTextSharp 5.1), plaintext production credentials in source, and no tests — yet it generates customer-facing legal documents (ATOL certificates, invoices). The overlap with backoffice-documentation-booking and the documentation-EWS/certificates repos makes consolidation into that newer documentation stack the obvious modernisation route.