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

html2pdf-service

Small REST API that renders HTML into PDF documents using an embedded Chromium (CefSharp), used by the supplier-confirmations flow.

54 · amberhighlooseOn-premZDD: not applicableapidormant

Health score

54

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
4
End-of-life runtime outside .NET Framework
Legacy transport / 15
15
No legacy WCF or SOAP surface
Test posture / 15
0
No tests
Security hygiene / 15
15
No credentials found in source
Dangerous coupling / 15
15
No dangerous coupling detected
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): 542026-07-27 (run-2026-07-27-1): 54
No change since 2026-07-24 (54 to 54).

Facts

Languagescsharp
FrameworksASP.NET Core 3.1
Runtimes.NET Core 3.1 (win-x64)
Tests / CInone / CI in place
Last commit2020-03-11
OwnerOwner unknown (mapping to be curated)
DomainPlatform services (system generated; curate in repo-owners.json to override)
Product areaShared platform
HostedOn-prem Deployed to our own machines
  • Release "\finance\supplier-confirmations\html2pdf service CI": QA: deployment-group phase (agents on our own machines)
Releases1 release pipeline(s): \finance\supplier-confirmations\html2pdf service CI
Integrationrest
SourceOpen in Azure DevOps

Risk flags

Each flag links to its glossary definition.

Dependencies in context

No internal dependencies, dependents or shared stores recorded for this repo.
greenamberreddata store (square, dashed link)Node size follows fan-in. Click any node to open it.

Entanglement

loose No binding mechanisms apply: this system needs no untangling work.

    Depends on / used by

    Depends on (0)
    Nothing internal.
    Used by (0)
    No internal dependents.

    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

    Not applicable

    No SQL Server dependency is recorded for this repo. Nothing to migrate.

    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

    Review html2pdf-service for retirement

    Dormant (last commit 2020-03-11) 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

    html2pdf-service

    Purpose

    Single-endpoint web API (POST /api/v1/pdfs/from-html) that converts submitted HTML into a PDF via CefSharp.OffScreen (headless Chromium 79). Released under the finance supplier-confirmations folder, so it most likely renders supplier confirmation documents.

    Tech stack

    C# on ASP.NET Core 3.1, pinned to win-x64 because CefSharp requires native Windows Chromium binaries. Serilog for logging. Command-handler pattern with one controller and one command (CreatePdfFromHtml).

    Deployment

    One release pipeline (\finance\supplier-confirmations\html2pdf service CI) fed by the html2pdf-service CI build (azure-pipelines.yml using shared templates v0.9.4, custom publish step for the x64 runtime). Nine appsettings environment files (qa, training, preproduction, production, live, etc.) but they contain only logging config.

    Dependencies

    No internal TC NuGet packages and no calls to other estate services. External packages: CefSharp.OffScreen 79.1.360, Serilog.

    Data stores

    None; stateless request/response service.

    Integration points

    Inbound REST only. No message bus, no outbound HTTP clients.

    Code health

    No test projects. CI exists but last commit was 2020-03-11 — dormant for over six years.

    Modernisation risks

    .NET Core 3.1 is long past end of life and Chromium 79 (2019) carries known CVEs, a real concern for a service rendering arbitrary HTML. Windows-only native dependency blocks containerisation on Linux. A rewrite on modern .NET with Playwright/Puppeteer (or a managed PDF library) would be small and low risk given the single endpoint.