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.
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, sql |
| Frameworks | ASMX Web Services, SQL Server Reporting Services |
| Runtimes | .NET Framework 4.5.2 |
| Tests / CI | none / CI in place |
| Last commit | 2024-10-17 |
| Owner | Owner unknown (mapping to be curated) |
| Domain | Bookings and fulfilment (system generated; curate in repo-owners.json to override) |
| Product area | Phenix |
| Hosted | On-prem Deployed to our own machines
|
| Releases | 2 release pipeline(s): \ops\documentationbooking\tc-documentation CI; \ops\documentationbooking\tc-documentation CI - Stealth |
| Integration | soap |
| Source | Open in Azure DevOps |
Risk flags
Each flag links to its glossary definition.
Dependencies in context
Entanglement
kernel Bound into the core by 2 mechanism(s).
- Pinning dependency: application-framework
- Shares core database sqlserver:EventLog
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
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. Retirement or consolidation candidate; do not invest in ZDD adoption.
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
Retire insteadThis 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
proposedReview 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
proposedAssessment 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.