Platform Evolution
Assessment run-2026-07-27-1 · 213 of 213 repos assessed
Repos / ibs-errata-api

ibs-errata-api

REST API for creating, modifying, browsing and deleting hotel errata (property notices/corrections) for the IBS accommodation content, stored in MongoDB.

71 · ambermediumlooseOn-premZDD: needs workapi

Health score

71

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
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
2
Deprecated release pipeline still attached
Health over time
2026-07-24 (run-2026-07-24-1): 712026-07-27 (run-2026-07-27-1): 71
No change since 2026-07-24 (71 to 71).

Facts

Languagescsharp
FrameworksASP.NET Core 6 (minimal API), MediatR 12, FluentValidation 11
Runtimes.NET 6
Tests / CIgood / CI in place
Last commit2024-03-01
OwnerOwner unknown (mapping to be curated)
DomainSelling and quoting (system generated; curate in repo-owners.json to override)
Product areaPhenix
HostedOn-prem Deployed to our own machines
  • Release "\commercial\ibs\ibs-errata-api [DEPRECATED]": QA: deployment-group phase (agents on our own machines)
  • Release "\commercial\ibs\ibs-errata-api [DEPRECATED]": Staging: deployment-group phase (agents on our own machines)
  • Release "\commercial\ibs\ibs-errata-api [DEPRECATED]": Production: deployment-group phase (agents on our own machines)
  • Release "\commercial\ibs\ibs-errata-api [DEPRECATED]": Training: deployment-group phase (agents on our own machines)
  • Release "\commercial\ibs\ibs-errata-api [DEPRECATED]": DR: deployment-group phase (agents on our own machines)
Releases1 release pipeline(s): \commercial\ibs\ibs-errata-api [DEPRECATED]
Integrationrest
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.

    Data stores
    mongodb:Accommodationmongodb:ibs_api

    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

    Needs work

    Feasible through the Workflow Engine's rolling drain, but real preparation is needed: dual-version discipline, better tests, or schema care before at-will release is sensible. Legacy runtime: the rolling drain works (stealth releases prove it) but relies on fix-forward risk rather than dual-version safety.

    Steps
    1. Adopt the four-stage discipline from the ZDD engineering standard: pre-deployment compatibility, deployment, feature activation behind a flag, post-release cleanup.
    2. Make every change dual-version safe: backwards-compatible APIs (new major version for breaking wire changes), expand and contract for any schema change, and consumers tolerant of unknown fields.
    3. Audit serialized data: anything in Redis, queues or shared caches must deserialize cleanly across adjacent versions.
    4. Wrap behaviour changes in feature flags so code deploys dark and release becomes a business decision, not a deployment event.
    5. Route deployments through the Workflow Engine's automated drain, deploy, health-check, return cycle (the path proven by the first automated production run in mid-2026).
    6. Verify with area-scoped regression rather than the whole-platform cycle, and watch error rates after rollout with automated rollback on alert.

    SQL Server exit

    Not applicable

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

    Containerisation

    Ready to containerise

    Modern runtime, no hosted legacy transport: this service can follow the estate's proven container path (Dockerfile, shared pipeline template, ECS via Terraform).

    Steps
    1. Add a Dockerfile and make the app read all configuration from environment variables and the secrets manager, never from machine-local files.
    2. Log to stdout and expose a health check endpoint so ECS can supervise it.
    3. Adopt the shared ci.yml pipeline template with the container parameters (awsRegion, containerAfterBuild, ecsTerraformRepo), which is exactly how the estate's existing AWS services deploy.
    4. Define the service in the Terraform repo, deploy to a non-production environment, then shift traffic and disarm the deployment-group release pipeline.

    Recommended actions

    Replatform ibs-errata-api to modern .NET

    Runs on .NET 6, out of mainstream support. No pinning dependency blocks it; sequence by fan-in (providers before consumers).

    Impact: Reduces the end-of-life runtime count

    proposed

    Assessment notes

    ibs-errata-api

    Purpose

    Commercial/IBS-domain API exposing CRUD endpoints for hotel errata keyed by hotel code (create, modify, delete, list-all, get-by-hotel-code). Served under /Api/IbsErrataApi behind Phenix authentication.

    Tech stack

    C# on .NET 6, ASP.NET Core minimal API with MediatR command/query handlers, FluentValidation, AutoMapper, Swashbuckle. Layered into API / App / Core projects. TC ConnectionBroker (SQL, Mongo, Redis, WCF, API flavours referenced) resolves connections; PhenixAuth libraries provide auth schemes and claims.

    Deployment

    One build pipeline (ibs-errata-api, azure-pipelines.yml on shared templates v1.0) and one release pipeline \commercial\ibs\ibs-errata-api [DEPRECATED] — the deprecation marker suggests deployment has moved or the service is being retired.

    Dependencies

    Internal NuGet: TC.ConnectionBroker suite (tc-connectionbroker), TravelCounsellors.ApiTools (tc-api-tools), plus TC.Phenix.ClientApiLibrary, TC.FluentResults, WebApi.Logger (source repos not confirmed). External: New Relic APM (app name configured).

    Data stores

    MongoDB Accommodation database for errata documents — a database shared with the wider accommodation domain rather than owned solely by this API — and MongoDB ibs_api for request/response logging.

    Integration points

    Inbound REST/JSON with Swagger. WCF and API connection brokers are referenced but no outbound service calls were found in the handlers.

    Code health

    Good test coverage for its size: unit tests plus integration tests covering each endpoint. CI in place. README is untouched boilerplate. Last commit 2024-03-01.

    Modernisation risks

    .NET 6 reached end of support in late 2024, so the runtime needs an upgrade to a supported LTS. The [DEPRECATED] release pipeline needs clarifying — if the API is still serving traffic its deployment path is unclear; if not, it is a decommission candidate. Writing into the shared Accommodation Mongo database couples it to the accommodation domain's schema.