Platform Evolution
Assessment run-2026-07-27-1 · 213 of 213 repos assessed
Repos / payment-components-v1

payment-components-v1

Frozen v1 generation of TC's StencilJS payment web-component library, still deployed to CloudFront for consumers not yet migrated to payment-components (v2).

88 · greenmediumlooseAWSZDD: not applicablelibrary

Health score

88

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
18
Runtime outside the standard generations (for example SQL Server or tooling)
Legacy transport / 15
15
No legacy WCF or SOAP surface
Test posture / 15
15
Good test coverage
Security hygiene / 15
15
No credentials found in source
Dangerous coupling / 15
15
No dangerous coupling detected
Activity / 10
5
No commit in over a year
Deployment hygiene / 5
5
CI in place
Health over time
2026-07-27 (run-2026-07-27-1): 88
Baseline 88 recorded 2026-07-27. The trend fills in with each monthly assessment run.

Facts

Languagestypescript
FrameworksStencil 4, Sass, Jest/Puppeteer
Runtimesnodejs
Tests / CIgood / CI in place
Last commit2025-05-14
OwnerOwner unknown (mapping to be curated)
DomainPayments and finance (system generated; curate in repo-owners.json to override)
Product areaShared platform
HostedAWS Deployed to AWS
  • build "payment-components-v1" (build.yml): AWS signal "cloudfront:"
Releases0 release pipeline(s):
Integrationrest, jwt
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

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

    Depends on / used by

    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. Ships as a package; ZDD applies to the services that consume it.

    SQL Server exit

    Not applicable

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

    Containerisation

    Not applicable

    Libraries ship as packages, not as running services. There is nothing to containerise.

    Recommended actions

    No specific actions for this repo. It either needs only normal maintenance, or its work is covered by an estate-level action. See the full programme.

    Assessment notes

    payment-components-v1

    Purpose

    The original (v1.0.0) payment web-component library, superseded by the v2 payment-components repo but still built and hosted in production for channels that have not migrated. Same architecture as v2: retail-payment-wrapper and portal-payment-wrapper host payment-method pickers, card forms and amount components, driving sessions through the TC payments router API with provider components for BR-DGE/Comcarde (hosted fields, 3-D Secure), Cybersource microform and a dummy test provider. Unlike v2 it has no Stripe provider, no payment-link wrapper and no telephony/PCI Pal components.

    Tech stack

    TypeScript on Stencil 4.12 with per-component SCSS (@stencil/sass) rather than v2's Tailwind, node-polyglot en/nl localisation, jwt-decode for Cybersource capture contexts, ESLint and the Stencil Jest + Puppeteer test runner. A Backstage catalog-info.yaml marks it as owned by finance-team in the payments system.

    Deployment

    No classic release pipelines (release_count 0); traced via build->yaml-deploy, build pipeline payment-components-v1. build.yml is a near-copy of the v2 pipeline: shared InternalOSS/azure-pipelines-templates ci.yml (UIBuild pool, Node 20.x, aws configuration, the same backup/restore workaround around tests), publishing to the tc-payments-ui-artifacts S3 bucket behind a cloudfront_spa CloudFront distribution with Terraform in aws-payments-tc-apps (useTFVarsDeployment: true, functional area payments).

    Dependencies

    Internal: the TC payments router REST API (tc-payment-router) and the dummy instruments API (paymentprovider-dummy). External: runtime-loaded Comcarde/BR-DGE scripts (hosted fields, 3-D Secure, Apple Pay), the Cybersource microform SDK, and Apple Pay/Google Pay wallets.

    Data stores

    None — stateless UI components; session state lives in the payment router.

    Integration points

    Outbound REST to the payments router and dummy-instruments APIs; JWT decoding for Cybersource capture contexts; browser-side PSP SDK integration.

    Code health

    Good test discipline for its age: ~73 spec/e2e files colocated with components and generated per-component readmes. The top-level README is pure Stencil starter boilerplate. Effectively frozen — last commit 2025-05-14, with active development having moved to the v2 repo (its package.json even retains a TODO for the router package-update command).

    Modernisation risks

    Medium — not because of its stack (modern Stencil/TypeScript) but because it is a duplicate, frozen copy of the payment UI kept alive for unmigrated consumers: two payment component codebases must be security-patched and kept compatible with the same router API and PSP SDKs. The clear action is to finish migrating remaining consumers to payment-components v2 and retire this repo and its CloudFront distribution.

    Data store follow-up (2026-07-28)

    Follow-up scan of project files, configuration and the central Terraform repos confirmed the empty data_stores list is correct. Component package repo; no data store packages or configuration found.